先来领会一下观察者模式的精神: 观察者模式定义了一系列对象之间一对多的关系。通俗的比喻相当于报社和订报的人,水电局和用户。也就是出版者和订阅者。 观察者模式涉及到了如下几点定义: 抽象主题角色 具体主题角色 抽象观察者角色 具体观察者角色 1.接下来是具体的例子 就拿某直播平台的通知功能来说,其类图 ...
分类:
编程语言 时间:
2016-04-28 14:20:26
阅读次数:
283
综述
观察者模式(Observer Pattern)也叫做发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式。这个模式的一个最重要的作用就是解耦。也就是将被观察者和观察者进行解耦,使得他们之间的依赖性更小,甚至做到毫无依赖。在观察者模式中它定义了一种一对多的依赖关系,使得当每一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新。...
分类:
编程语言 时间:
2016-04-27 22:46:44
阅读次数:
350
11个行为模式之6(备忘录模式,观察者模式,状态模式,策略模式,模版模式,访问者模式)
备忘录模式
Sunny软件公司欲开发一款可以运行在Android平台的触摸式中国象棋软件,由于考虑到有些用户是“菜鸟”,经常不小心走错棋;还有些用户因为不习惯使用手指在手机屏幕上拖动棋子,常常出现操作失误,因此该中国象棋软件要提供“悔棋”功能,用户走错棋或操作失误后可恢复到前一个步骤,...
分类:
其他好文 时间:
2016-04-26 22:09:42
阅读次数:
368
让你的对象,知悉现况
-----观察者模式
一、观察者模式
1、认识观察者模式---订报纸
(1) 报社的业务是出版报纸
(2) 向某报社订报纸,只要他们有新报纸出版,就会给你送来。只要你是他们的订户,你就会一直收到新报纸
(3) 当你不想要报纸了,取消订阅,报社就不会再送新报纸了
(4) 只要报社还在运营,就会一直有人向他们订阅报纸或取消订阅
一句话:观察者模式=...
分类:
其他好文 时间:
2016-04-26 21:00:17
阅读次数:
163
1,概述:
(1) 这个模式是类与类之间的关系,不涉及到继承,观察者模式很好理解,类似于邮件
订阅和RSS订阅,当我们浏览一些博客或者wiki(维基百科)时,经常会看到RSS图标,这就
是说,当你订阅了该文章,如果后续有更新,会及时通知你,其实,简单一句话就是说:当
一个对象变化时,其他依赖该对象的对象都会收到通知,并且随着变化,对象之间是一种
一...
分类:
编程语言 时间:
2016-04-26 20:46:24
阅读次数:
190
基本概念Observer
观察者模式(Observer Pattern)又称为发布订阅模式(Publish/subscribe)
定义对象间的一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并且自动更新
根据单一职责原则,每个类的职责是单一的,我们可以通过触发机制,形成一个触发链,把各个单一的职责串联成真实世界中的复杂的逻辑关系。
观察者模式的角色分工(JDK中提供了...
分类:
编程语言 时间:
2016-04-26 20:33:30
阅读次数:
261
定义对象见的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。观察者模式的角色
1. 抽象主题角色(Subject):把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察者角色。一般用一个抽象类和接口来实现。
2. 具体主题角色(ConcreteSubject):在具体主题内部状态改...
分类:
其他好文 时间:
2016-04-26 20:32:00
阅读次数:
248
一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代器模式、责 ...
分类:
其他好文 时间:
2016-04-25 19:24:04
阅读次数:
138
观察者模式 当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 观察者模式在状态检测和事件处理等场景中是非常有用的。这种模式确保一个核心对象可以由一组未知并可能正在扩展的“观察者”对象来监控。 ...
分类:
编程语言 时间:
2016-04-24 21:33:01
阅读次数:
265
现实生活中,这样的例子太多了,一个对象的状态受另外一个对象的影响。比如,进度条根据上传的百分比而变化,红灯停绿灯行。。。。。这样的业务数不胜数。甚至我们有时候心情也是随着很多经历而变化。在开发过程中,这样的业务当然也是很多的,但是,稍有不慎,我们可能会实现出比较麻烦的代码。而设计模式中有一种模式对于 ...
分类:
其他好文 时间:
2016-04-23 22:44:38
阅读次数:
164