观察者模式之二 -发布 订阅模式
来源:互联网 发布:走出帝制在淘宝怎么搜 编辑:程序博客网 时间:2024/06/10 04:41
观察者模式(有时又被称为发布/订阅模式)是软体设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常透过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生改变时候,会通知所有的观察对象,以便他们能更新自己
主题对象,主题对象发生变化时,能够更新监听他的对象
package com.design.observer03;import java.util.ArrayList;import java.util.List;public class Subject {private List<Observer> observers = new ArrayList<Observer>();public void addObserver(Observer observer){observers.add(observer);}public void removeObserver(Observer observer){observers.remove(observer);}public void notifyObservers(){for(Observer o:observers){o.update();}}}
package com.design.observer03;public abstract class Observer {protected String name;public Observer(String name,Subject subject) {this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}public abstract void update();}
package com.design.observer03;public class ObserverA extends Observer{public ObserverA(String name, Subject subject) {super(name, subject);subject.addObserver(this);}@Overridepublic void update() {System.out.println("ObserverA 更新自己");}}
package com.design.observer03;public class ObserverB extends Observer{ public ObserverB(String name, Subject subject) { super(name, subject); subject.addObserver(this); } @Override public void update() { System.out.println("ObserverB 更新自己"); }}
- 观察者模式之二 -发布 订阅模式
- 观察者模式--发布/订阅模式
- 设计模式二:观察者模式(发布订阅模式)
- 十六 设计模式之观察者模式(发布订阅模式)
- 设计模式之观察者模式(发布-订阅模式)
- 观察者(发布-订阅)模式浅析
- C++之观察者模式(订阅-发布模式)
- java笔记--设计模式之观察者(订阅/发布)模式
- 观察者模式(也就是发布订阅模式)
- 观察者模式 (发布-订阅模式)
- 8. 观察者模式-发布订阅模式
- 观察者模式(又叫发布-订阅模式)
- 观察者模式与发布/订阅模式区别
- 观察者模式(发布订阅模式)
- 观察者模式与发布/订阅模式区别
- 发布订阅模式(观察者模式)
- 观察者模式与发布/订阅模式区别
- 发布-订阅模式(观察者模式)
- oracle中any,some,all用法
- 一道比较有意思的Java面试题
- BinaryUtil
- 反射动态代理
- 关于IE9在Windows 7中无法卸载或者IE9菜单英文的解决办法
- 观察者模式之二 -发布 订阅模式
- 高性能web开发(画这图不容易啊)
- VC2005: warning LNK4076: 无效的增量状态文件
- 你在UI界面设计中做到了这12点吗
- Windows程序设计中为什么要注册窗口类?
- Tomcat6.0配置JNDI数据源出现的常见异常
- ORACLE监听服务管理
- Java中访问权限-类和接口
- linux NAT 上网