观察者模式,顾名思意就是观察与被观察的关系,比如你在烧开水得时时看着它开没开,你就是观察者,开水就是被观察者;再比如说你在带小孩,你关注她是不是饿了,是不是喝了,是不是撒尿了,你就是观察者,小孩就被观察者。观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。...
分类:
编程语言 时间:
2015-05-13 23:14:54
阅读次数:
158
在阎宏博士的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。....
分类:
编程语言 时间:
2015-05-13 18:55:38
阅读次数:
218
如果你学习过设计模式,那么当想通知其他组件某些事情发生时你一定会使用观察者模式。好了,既然能想到这个设计模式,那么就来看一个屌爆天的Android开源框架EventBus。主要功能是替代Intent、Handler、BroadCast在Fragment、Activity、Service、线程之间传递消息。他的最牛逼优点是开销小,代码简洁,解耦代码。...
分类:
其他好文 时间:
2015-05-13 10:13:20
阅读次数:
150
HeadFirst中对观察者模式的定义:观察者模式定义了对象之间的一对多的依赖,这样一来,当一个状态发生变化时,它的所有依赖者都会收到通知并自动更新。松耦合:当两个对象时间松耦合,它们依然可以交互,但是不太清楚彼此的细节。观察者模式提供了一种对象设计,让主题和观察者之间的松耦合。 有两种自动更细的....
分类:
其他好文 时间:
2015-05-13 06:07:56
阅读次数:
118
Android开发如果不懂设计模式,那么再深度研究就会困难重重,笔者深有体会,研究设计模式势在必行:
第一篇:观察者模式:
观察者模式定义:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并会自动更新。
观察者模式中主要有目标对象(被观察者)和观察者2个对象。
本文使用报社(目标对象)与读者(观察者)来形象替代以上2个对象,实现流程如下:
读者...
分类:
编程语言 时间:
2015-05-12 15:52:06
阅读次数:
129
如果你学习过设计模式,那么当想通知其他组件某些事情发生时你一定会使用观察者模式。好了,既然能想到这个设计模式,那么就来看一个屌爆天的Android开源框架EventBus。主要功能是替代Intent、Handler、BroadCast在Fragment、Activity、Service、线程之间传递消息。他的最牛逼优点是开销小,代码简洁,解耦代码。...
分类:
其他好文 时间:
2015-05-12 15:36:10
阅读次数:
3926
观察者模式(Observer):定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,这个主题对象在状态发生变化时会通知所有观察者对象,使他们能够自动更新自己。
将一个系统分割成一系列相互协作的类有一个很不好的副作用,那就是需要维护相关对象间的一致性,我们不希望为了维持一致性而使各类紧密耦合,这样会给维护、扩展、重用都带来不便。所以,当一个对象的改变同时需要改变其他对象而且不知道要...
分类:
编程语言 时间:
2015-05-12 11:28:54
阅读次数:
134
PS:手写单例、代理方法实现 & 通知的简单使用![ 单例模式,代理设计模式,观察者模式! ] 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 -- GoF “四人.....
分类:
其他好文 时间:
2015-05-11 23:58:45
阅读次数:
296
概述: 近期中国股市起起伏伏,当然了起伏就用商机,小明发现商机后果断想入市,买入了中国证券,他想在电脑client上,网页上,手机上,iPad上都能够查看到该证券的实时行情,这样的情况下我们应该怎么设计我们的软件呢?我们能够这样:小明的全部client上都订阅中国证券这个股票,仅仅要股票一有变...
分类:
编程语言 时间:
2015-05-11 21:33:53
阅读次数:
125
DisplayElement.javapublic interface DisplayElement {public void display();}CurrentConditionsDisplay.javaimport java.util.Observer;import java.util.Obs...
分类:
编程语言 时间:
2015-05-11 10:42:13
阅读次数:
114