设计模式笔记-观察者(Observer)】的更多相关文章

观察者设计模式应该是比较简单的一个设计模式. 定义 定义了对象之间的一对多依赖,这样以来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新. 简单理解就是: 当1个对象状态有所改变的时候,依赖于它的其他对象将会有所行为. 举例:时钟12点响起的时候,公司里的员工都出去吃饭了,老板准备开会了,学生下课了. 类图 测试 public class Test { public static void main(String[] args) { Clock clock = new Clock()…
定义 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新.  Observer模式描述了如何建立这种关系.这一模式中的关键对象是目标(subject)和观察者(observer).一个目标可以有任意数目的依赖它的观察者.一旦目标的状态发生改变,所有的观察者都得到通知.这种交互也称为发布-订阅(publish-subscribe).目标是通知的发布者.故观察者模式又名 依赖(Dependents),发布-订阅(Publish-Subscribe)…
//---------------------------15/04/27---------------------------- //Observer 观察者模式----对象行为型模式 /* 1:意图: 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新. 2:别名: 依赖(Dependents),发布-订阅(Publish-Subscribe) 3:动机: 4:适用性: 1>当一个抽象模型有两个方面,其中一个方面依赖于另一方面.将这两者封装…
思考题 在我们的一个实现中,下列哪种说法正确?(多选) P42 public class WeatherDate { // 实例变量声明 public void measurementsChanged() { float temp = getTemperature(); float humidity = getHumidity(); float pressure = getPressure(); currentConditionsDisplay.update(temp, humidity, pr…
重温了Head First 3个设计模式.提炼一下思想,笔记如下. 策略-Strategy 当一个类或类族中重复实现某些同类的方法(behavior)时,考虑使用策略模式. 该模式是将Behavior或算法设计成接口.具体不同的Behavior实现该接口.原来的类中含有算法接口的成员.通过set或constructor设定Behavior或算法. 结合Head First例子记忆.将Duck的Fly,Swim,Quack,Display等都抽象成接口.然后不同的算法实现各自的接口.在Duck中包…
设计模式:观察者(Observer)模式 一.前言   观察者模式其实最好的名称应该是“发布订阅”模式,和我们现在大数据之中的发布订阅方式比较类似,但是也有区别的地方,在上一个设计模式,我们学习的是仲裁者模式,其中当控件的状态发生改变的时候就会向仲裁者发出信息,让仲裁者进行仲裁,这其实和发布订阅非常的类似,但是用处是不一样的,仲裁者模式是用来解除复杂对象之间的相互调用的关系,从而独立出来进行开发,而观察者模式是在被观察者状态改变的时候被动的被唤醒进行相应的处理,两者的实现比较类似,比如都是被动唤…
GOF给出的定义: Define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically. 定义了对象之间的一种一对多的依赖关系,这样,当一个对象的状态发生变化时,所有的依赖对象都被通知并自动更新. 包含观察者与被观察者(也称为主题) 使用场景: 1.有两个抽象类型相互依赖.将他…
观察者模式定义对象的一种一对多的依赖关系.当一个对象的状态发生改变时.全部依赖于它的对象都会得到通知并被自己主动更新. 一个简单的样例是.在星际争霸的虫族中有一个0基础单位叫做跳狗(Zergling),玩家能够在研究中心为它升级"肾上腺素",升级之后,跳狗的攻击速度会翻倍.在这个模型中,我们能够看出.全部的跳狗都依赖于研究中心,当研究中心研究出肾上腺素后,通知每个跳狗单位,它们被迫进行自我更新--升级速度加倍.在观察者模型中.我们称研究中心为目标(Subject),而跳狗为观察者(Ob…
一. 概述 Observer 模式要解决的问题为:建立一个一(Subject)对多(Observer)的依赖关系,并且做到当“一”变化的时候,依赖这个“一”的多也能够同步改变. Sbuject 相当于通知者,它提供依赖于它的观察者Observer 的注册(Attach)和注销(Detach)操作,并且提供了使得依赖于它的所有观察者同步的操作(Notify). Observer 相当于观察者,则提供一个Update操作,注意这里的 Observer 的 Update 操作并不在Observer 改…
模式动机 建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应.在此,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展,这就是观察者模式的模式动机. 模式定义观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新.观察者模式又叫做发布-订阅(Pu…