[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