设计模式--观察者模式--Java实现
2017-07-11 11:59
513 查看
Subject–>小明–>知道他的观察者(妈妈,女朋友)–>可以添加,删除,通知他的观察者
ConcreteSubject–>天气预报–>各种不同天气状态–>天气改变了也要通知观察者(小明)的妈妈,女朋友
Observer->接口
ConcreatObserver–>小明母亲和女朋友–>重写接口的update方法,使得状态改变了观察者也马上观察得到
——只有我觉得这个观察者模式和那个多线程的同步问题差不多吗
*目标接口 Subject
观察者接口 Observer
观察者接口的更新方法 update
触发通知的时机先改数据后通知
观察者模式调用顺序 准备阶段1创建目标对象2创建观察者对象3相目标对象注册观察者对象 运行阶段1改变目标对象的状态1.1通知所有注册地观察者对象进行相应的处理1.1.1回调目标对象,获取相应数据
通知的顺序 观察之间是平行的*
说的太复杂了,感觉没有把观察者模式的本质讲解明白。至于推模型和拉模型的区别,解释的也比较生硬。其实在传统的观察者模式中,全都属于推模式。拉模式应该是在观察者一段存在一个轮训,然后每隔一段时间就向观察对象回调一次数据。有变化就更新自己的状态,没有变化就继续轮训。
观察者模式 触发联动
当一个抽象模型有两个方面,其中一个方面的操作依赖于另一个方面的状态变化 如果在更改一个对象的时候,需要同时连带改变其他的对象,而且不知道究竟应该 有多少对象需要被连带改变 当一个对象必须通知其他的对象,但是你又希望这个对象和其他的被通知的对象是松散耦合的
相关文章推荐
- GOF23设计模式之观察者模式的理解与实现2(使用java自带的观察者类和接口)
- Java设计模式菜鸟系列(两)建模与观察者模式的实现
- 设计模式(Design Pattern) - 行为型模式(Behavioral Pattern) - 观察者模式(Observer) - Java实现
- JAVA设计模式 之 观察者模式(JDK内置实现)
- 设计模式-观察者模式(Java实现)
- 设计模式之观察者模式(有源码简单实现及java函数简单实现)
- 使用观察者模式实现Java应用程序设计MVC模式
- 设计模式之第18章-观察者模式(Java实现)
- 设计模式:观察者模式(observer) java实现及原理
- 23种经典设计模式的java实现_5_职责链模式
- 用JSP+Servlet+JavaBean模式实现一个简单的登录网页设计(JSP+Tomcat+MySQL)
- GoF设计模式学习之一:单例模式(Java实现)
- JAVA23种设计模式实现
- java设计模式-观察者模式
- 23种经典设计模式的java实现_2_适配器模式
- 用Java实现的设计模式系列(2)-Prototype
- 23种经典设计模式的java实现_4_生成器模式
- 用Java实现的设计模式系列(1)-Factory
- 23种经典设计模式的java实现_4_生成器模式
- C#中利用代理实现观察者设计模式