Java设计模式之观察者模式
来源:互联网 发布:jav网络机顶盒如何刷机 编辑:程序博客网 时间:2024/06/07 20:12
//demo 演示public static void main(String[] args) { // 新建观察者 ConcreteObserver obsever1=new ConcreteObserver(); // 新建被观察者 ConcreteSubject concreteSubject=new ConcreteSubject(); //绑定观察者 concreteSubject.attached(obsever1); //通知刷新内容 concreteSubject.notifyDataChange("圣诞快乐!!!");; //回收解绑 concreteSubject.dettached(obsever1); }
//抽象观察者public interface Observer { //刷新内容 void dataChanged(String content);}//具体观察者public class ConcreteObserver implements Observer { @Override public void dataChanged(String content) { // TODO Auto-generated method stub System.out.println("观察者1:收到消息=="+content); }}
//抽象被观察者public class AbstractSubject { // 用來存观察者 protected List<Observer> list = new ArrayList<>(); // 绑定观察者 protected void attached(Observer observer) { if (observer != null) list.add(observer); } // 解除绑定 protected void dettached(Observer observer) { if (observer != null) list.remove(observer); } // 通知内容刷新 protected void notifyDataChange(String content) { if (list.size() > 0) { for(Observer observer: list) { observer.dataChanged(content); System.out.println("观察者解除绑定!"); }; } }}//具体被观察者public class ConcreteSubject extends AbstractSubject { //自定义别的实现方法}
**总结:观察者有两个重要点
1.被观察者必须有个集合来存放观察者。
2.被观察者必须持有观察者的引用,要记得回收(解绑)观察者。**
阅读全文
0 0
- java设计模式之“观察者设计模式”
- Java设计模式之观察者设计模式
- 《java设计模式》之观察者设计模式
- Java设计模式之观察者
- Java设计模式之观察者
- Java设计模式之Observer(观察者)模式
- Java设计模式之Observer 观察者模式
- Java设计模式之Observer-观察者模式
- java 设计模式之二-观察者模式
- Java设计模式之观察者模式
- java设计模式之观察者模式
- java设计模式之观察者模式Observer
- java设计模式之观察者模式
- Java设计模式之观察者模式
- JAVA设计模式之观察者模式2
- java与设计模式之观察者模式
- Java--设计模式之观察者模式
- java设计模式之观察者模式
- 初步认识并查集
- java基础
- git学习(1)
- Postgresql新建数据库
- 项目随笔(二)
- Java设计模式之观察者模式
- 蓝桥杯练习题之查找整数
- 740. Delete and Earn
- AutoCAD .Net 在dwg文件中存储自定义数据
- 虚拟机的串口打印
- 《算法导论》矩阵链乘法问题
- 饿了么-vur2.0实现总结一(项目创建及文档结构) _补充图片
- 在虚拟机中使用桥接方式连接实例
- 李飞飞来信:为什么我决定重返中国