[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