@634

Observer パターン

Advertisement

状態の変化を通知する

オブジェクトの状態が変化した時、状態変化の通知を他の複数のオブジェクトに自動的に通知する。

サンプルコード

JavaにはObserverパターンを簡単に実現するためのObserverインタフェースとObservableクラスが用意されている。

クラス Manager
import java.util.Observable;

public class Manager extends Observable{
    public void addVector(Human human){
        this.addObserver(human);
        this.setChanged();
        super.notifyObservers();
    }

    public static void main(String args[]){
        Manager manager = new Manager();
        manager.addVector(new Human("tarou"));
        System.out.println("");
        manager.addVector(new Human("jirou"));
        System.out.println("");
        manager.addVector(new Human("saburou"));
    }
}

クラス Human
import java.util.Observer;

class Human implements Observer{
    private String name;

    public Human(String str){
        this.name = str;
    }

    public void update(Observable obs, Object obj){
        this.hello();
    }

    public void hello(){
        System.out.println(this.name + " " + "hello!");
    }
}

結果
tarou hello!

jirou hello!
tarou hello!

saburou hello!
jirou hello!
tarou hello!

Advertisement

ショートカット

634
634ブログ
このカテゴリのトップページに戻る
Incubator(Pukiwiki)
634ラボ
   UIコレクションギャラリー
   ZO-3ジェネレーター

サイト検索


Y!ログール