观察者模式

来源:互联网 发布:淘宝店铺入口图 编辑:程序博客网 时间:2024/05/01 11:30

观察者模式:

观察者模式依靠 接口或者抽象类来实现此模式。

        它适用于在 一对多关系依赖中,比如主题和订阅者之间;

它的关系模式如下图:



具体实现代码如下:


public interface Subject {public void add(Observer ob);  //增加观察者public void remove(Observer ob);  //删除观察者public void Notify();  //通知观察者}
public interface Observer {public void Update(); //更新自身}
//具体的主题或通知者实现public class ConcreteSubject implements Subject {private List<Observer> list = new ArrayList<Observer>();public void add(Observer ob) {list.add(ob);}public void remove(Observer ob) {list.remove(ob);}public void Notify() {for (Observer observer : list) {observer.Update();}}}
//具体的观察者实现public class ConcreteObserver implements Observer {private String observerState;private String name;private ConcreteSubject subject;public ConcreteObserver(ConcreteSubject subject,String name) {this.subject = subject;this.name = name;}public void Update() {System.out.println(name+" :已获取");}}
//测试观察者模式public class Main {public static void main(String[] args) {ConcreteSubject cs = new ConcreteSubject();cs.add(new ConcreteObserver(cs, "wang"));cs.add(new ConcreteObserver(cs, "ma"));cs.add(new ConcreteObserver(cs, "liu"));cs.Notify();}}



0 0
原创粉丝点击