首页 > 学院 > 开发设计 > 正文

观察者模式

2019-11-11 05:06:28
字体:
来源:转载
供稿:网友

观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。

简单代码实现

public interface Observer { public void update(String message);}public class Observable implements Observer { PRivate String name; public Observable(String name) { this.name = name; } @Override public void update(String message) { System.out.println(name + "-" + message); }}

核心接口,用于添加和删除订阅者,同时向订阅者发送消息。

public interface Subject { /** * 增加订阅者 * @param observer */ public void attach(Observer observer); /** * 删除订阅者 * @param observer */ public void detach(Observer observer); /** * 通知订阅者更新消息 */ public void notify(String message);}

维护一个Observer列表

public class SubscriptionSubject implements Subject { private List<Observer> list = new ArrayList<Observer>(); @Override public void attach(Observer observer) { list.add(observer); } @Override public void detach(Observer observer) { list.remove(observer); } @Override public void notify(String message) { for (Observer observer : list) { observer.update(message); } }}public class Client { public static void main(String[] args) { SubscriptionSubject mSubscriptionSubject=new SubscriptionSubject(); Observable observable1=new Observable("xxx"); Observable observable2=new Observable("ooo"); mSubscriptionSubject.attach(observable1); mSubscriptionSubject.attach(observable2); mSubscriptionSubject.notify("updated!!!"); }}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表