观察者模式
来源:互联网 发布:淘宝店铺入口图 编辑:程序博客网 时间: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
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- 观察者模式
- YUV420存储为BMP和JPG图片
- android studio 返回键 NavUtils.navigateUpFromSameTask(this);
- ListView,RecyclerView等列表中实现分层的方法
- webuploader easyui上传小组件
- 并查集 HDU 1272 小希的迷宫
- 观察者模式
- libsvm用于回归预测的使用步骤总结
- Android开发之MySQL操作
- SUSE 11 zypper 本地源配置
- map用法
- Java多线程应用之火车站售票
- VS添加lib以及对编译过程的总结
- 常州测试day2:flower
- Python学习之路,每日一记