码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式-观察者模式(Observer Pattern)

时间:2014-06-08 21:10:38      阅读:293      评论:0      收藏:0      [点我收藏+]

标签:c   style   blog   a   http   get   

今天看了看观察者模式,有点小小的体会,从以下3点说明之 :

1.看一下经典的观察者模式图

bubuko.com,布布扣

2.讲个故事,说一下逻辑

有一个男人(Subject),他通过一定的手段(attach)拥有了3个女人(Observer):老婆(concreteObserver1),情人(concreteObserver2),小3(concreteObserver3).这3个女人都不知情,但是都想知道男人的月收入情况。而月收入需要通过工资卡(concreteSubject)来体现。所以,每当发工资(setState)时,男人就会群发短信(Notify)告知3个女人可以去查钱了,那么,这3个女人查询(getState)到工资卡里的钱,就想各自的挥霍方式去了。

3.观察者模式适用性

当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这二者封装在独立的对象中以使它们可以各自独立地改变和复用。

当对一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变。

当一个对象必须通知其他对象,而它又不能假定其他对象时谁。

Push ModelSubject 向 Observer 发送关于改变的详细信息,而不管它们是否需要。

Pull Model:Subject 除最小通知外什么也不推送,由 Observer 显式地向 Subject 询问细节。

设计模式-观察者模式(Observer Pattern),布布扣,bubuko.com

设计模式-观察者模式(Observer Pattern)

标签:c   style   blog   a   http   get   

原文地址:http://www.cnblogs.com/mayt-/p/3775937.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!