观察者模式 1.观察者模式,当一个对象状态发生改变时,依赖它的对象全部会收到通知,并自动更新 2.场景:一个事件发生后,要执行一连串更新操作,在传统的编程方式,就是在事件的代码之后直接加入处理逻辑。当更新的 逻辑增多之后,代码变得难以维护,这种方式是耦合的,侵入式的,增加新的逻辑需要修改事件主体的代 ...
分类:
其他好文 时间:
2016-05-27 14:27:24
阅读次数:
167
一、观察者模式定义:
定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,他的所有依赖者都会受到通知并自动更新。
观察者提供了一种对象设计,让主题和观察者之间松耦合。
二、组成部分:
1、抽象目标角色(Subject):也称主题,目标角色知道他的观察者,可以有任意多个观察者观察同一个目标,并且提供注册和删除观察者对象的接口。目标角色往往由抽象类或者接口来实现。
2、抽象观察者角色...
分类:
其他好文 时间:
2016-05-27 12:40:49
阅读次数:
211
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
其实还有两类:并发型模式和线程池模...
分类:
其他好文 时间:
2016-05-27 11:53:00
阅读次数:
285
观察者模式,顾名思义需要两方,一方是被观察的(主题),另一方就是观察者。就拿直播间来说,直播间就相当于一个主题,而用户就是观察者,用户进入直播间就是向主题注册(加进了用户队列),一般来说,用户可以离开直播间(从主题中移除该用户),当然直播间的主播也可以将用户移出直播间(也相当于从主题中移除该用户)。 ...
分类:
其他好文 时间:
2016-05-25 12:52:00
阅读次数:
158
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主体对象。这个主体对象在状态发生变化时,会通知所有的观察者对象,使它们能够自动更新自己。 观察者模式所做的工作其实就是在解除耦合。让耦合的双方都依赖于抽象,而不是依赖于具体。从而使得各自的变化都不会影响到另一边的变化。 下面的代码利 ...
分类:
其他好文 时间:
2016-05-23 22:44:42
阅读次数:
159
一、设计模式的分类
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式...
分类:
编程语言 时间:
2016-05-23 19:12:39
阅读次数:
210
本章是关于设计模式的最后一讲,会讲到第三种设计模式——行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。这段时间一直在写关于设计模式的东西,终于写到一半了,写博文是个很费时间的东西,因为我得为读者负责,不论是图还是代码还是表述,都希望能尽量写清楚,以便读者理解,我想不论是我还是读者,都希望看到高质量...
分类:
编程语言 时间:
2016-05-23 17:26:40
阅读次数:
344
在阎宏博士的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 ...
分类:
编程语言 时间:
2016-05-23 17:12:22
阅读次数:
144
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责 ...
分类:
编程语言 时间:
2016-05-22 15:11:28
阅读次数:
249
Observer Pattern,即观察者模式,当存在一对多关系,例如一个对象一有变动,就要自动通知被依赖的全部对象得场景,属于行为类的设计模式。 下面是一个观察者模式的简单案例。 Observer 定义观察者的接口,定义需要观察的对象,已经被通知的接口。BinaryObserver, OctalO ...
分类:
其他好文 时间:
2016-05-22 00:39:35
阅读次数:
202