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ラボ

サイト検索

Google

Web サイト内

Y!ログール