[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] Re: MVC¤È¡Ø Java¥ª¥Ö¥¸¥§¥¯¥ÈÀ߷סÙÂè5¾Ï
>ÉáÄ̤ÏModel¤¬View¤Î¾õÂÖ¤ò´Ñ»¡¤¹¤ë¤³¤È¤Ï¤Ê¤¤¤Î¤ÇView¤¬Obsevable¤Ë¤Ê¤ë
>¤³¤È¤Ï¤Ê¤¤¤È»×¤¤¤Þ¤¹.
># View¤ÈController¤Î´Ø·¸¤Ç¤Ï¤½¤¦¤¤¤¦¤³¤È¤â¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó.
¤½¤ì¤Ï¤½¤¦¤Ç¤¹¤Í¡£
Controller¤¬View¦¤Ç¤ÎÁàºî¤Ë½¾¤Ã¤ÆModel¤òÁàºî¤¹¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¤Í¡£
>Observable/Observer¤Î´Ø·¸¤¬¤â¤Ã¤È¤âŬ¤·¤Æ¤¤¤ë¤Î¤¬Model¢ªView¤Ê¤ó¤Ç¤·
>¤ç¤¦¤Í.¼ÂÁõ¤ÎÃʳ¬¤Ç¤Ï¾¤Î´Ø·¸¤òObservable/Observer¤Îµ¡¹½¤Ç¼ÂÁõ¤¹¤ë¤³
>¤È¤â¤¢¤ë¤Ç¤·¤ç¤¦¤«¤é.
># Controller¢ªView¤È¤«.
Peter Coad ¤ÎËܤˤϡ¢IRepeat ¤È Repeater ¤È¸À¤¦¤Î¤¬½Ð¤Æ¤¤Þ¤¹¡£
public interface IRepeat extends IObserveable, IObserver {}
public class Repeater implements IRepeat {
private ObservableComponent c = new ObservableComponent();
public void addIObserver(IObserver o) {
this.c.addIObserver(o);
}
public void deleteIObserver(IObserver o) {
this.c.deleteIObserver(o);
}
public void deleteIObservers() {
this.c.deleteIObservers();
}
public void update(Object o, Object change) {
this.c.notifyIObservers(o, change);
}
}
¤³¤ì¤ò¤Á¤ç¤Ã¤ÈÊѤ¨¤Æ¡¢¤³¤ó¤ÊÉ÷¤Ë¤·¤Æ»È¤Ã¤Æ¤¤¤Þ¤¹¡£
public class Repeater {
private Controler c = new Controler();
public synchronized void addIView(IView v) {
this.c.addIView(v);
}
public synchronized void deleteIView(IView v) {
this.c.deleteIView(v);
}
public synchronized void deleteIViews() {
this.c.deleteIViews();
}
public void update(Object o, Object change) {
this.c.notifyIViews(o, change);
}
}
Controller¢ªView¤Ç¤ÎController¤ÎÌò³ä¤Ï¡¢¤³¤ÎPepeater¤Ë¶á¤¤¤è¤¦¤Êµ¤¤¬¤·¤Þ¤¹¡£
------------------------------------------------------------------
±óÆ£Ì÷Ç· (¤¨¤ó¤É¤¦ ¤ä¤¹¤æ¤) <yasuyuki@xxxxxxxxxx>
http://www.freepage.total.co.jp/jfriends/ (Java¸ß½õ²ñ¥Û¡¼¥à¥Ú¡¼¥¸)
³ô¼°²ñ¼Ò¥¿¥¤¥à¥¤¥ó¥¿¡¼¥á¥Ç¥£¥¢ ¾ðÊóÄÌ¿®¥µ¡¼¥Ó¥¹Éô TEL 03-5362-9009
¢©162-0065 ¿·½É¶è½»µÈÄ®3-11 ¿·½É¥¹¥Ñ¥¤¥¢¥Ó¥ë8F FAX 03-5362-9008