設計模式(): 觀察者模式---特點待補充

概念

觀察者模式定義了一種一對多的依賴關係,讓多個觀察者對象同時監聽某一個主題對象。這個主題對象在狀態發生變化時,會通知所有觀察者對象,使它們能夠自動更新自己。
主題對象維護一個存儲所有觀察者對象的集合,主動向觀察者對象發送消息。

代碼

抽象通知者

public interface Subject {
    void addMonster(Monster monster);

    void notifyMonster();
}

抽象的觀察者

public abstract class Observer {

    protected String name;

    public abstract void respond (String response);
}

具體的觀察者

public abstract class Observer {

    protected String name;

    public abstract void respond (String response);
}

具體的通知者

import java.util.ArrayList;
import java.util.List;

public class Reporter implements Subject {

    private List<Monster> monsters = new ArrayList<>();

    @Override
    public void addMonster(Monster monster) {
        monsters.add(monster);
    }

    @Override
    public void notifyMonster() {
        for (Monster monster : monsters) {
            monster.respond("唐僧來了");
        }
    }
}

客戶端

public class Client {
    public static void main(String[] args) {
        Monster huangPao = new Monster("黃袍怪");
        Monster heiXiong = new Monster("黑熊精");

        Reporter reporter = new Reporter();
        reporter.addMonster(huangPao);
        reporter.addMonster(heiXiong);

        reporter.notifyMonster();
    }
}

特點

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章