观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
观察者模式结构图如下:
举例:
气象系统有三个部分分别是气象站(获取实际气象数据的物理装置),WeatherData对象(用来追踪来自气象站的数据,并更新布告板)和布告板(显示目前天气状况给用户看)。Weather...
分类:
编程语言 时间:
2014-06-20 13:38:15
阅读次数:
236
苹果其实在语言层面为我们做了很多事,比如Category实现装饰模式的意图,target-action实现命令模式意图等等,对于观察者模式,苹果也提供了KVO和通知中心,给开发者提供了极大的遍历。观察着模式即一个对象发出广播,然后某些对象可以在得知这个广播之后做相应的反应。KVO用来监控某个变量,是...
分类:
其他好文 时间:
2014-06-13 13:58:53
阅读次数:
660
观察者模式:定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使他们自己能够自动更新自己。简单描述:1个Subject类(可以是抽象类可以是接口),可以有多个具体Subject类(继承抽象Subject),此具体Subject持有...
分类:
编程语言 时间:
2014-06-09 23:02:37
阅读次数:
326
行为类模式包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法、访问者模式,我去,好多。。。下面主要挑选几个比较容易混淆且比较重要的模式进行对比说明。一、命令模式VS策略模式1、关注点不同策略模式关注的是算法替换的问题:一个新的算法投产,...
分类:
其他好文 时间:
2014-06-09 13:01:50
阅读次数:
236
今天看了看观察者模式,有点小小的体会,从以下3点说明之
:1.看一下经典的观察者模式图2.讲个故事,说一下逻辑有一个男人(Subject),他通过一定的手段(attach)拥有了3个女人(Observer):老婆(concreteObserver1),情人(concreteObserver2),小3...
分类:
其他好文 时间:
2014-06-08 21:10:38
阅读次数:
293
观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。下面来写一个简单的观察者模式:S...
分类:
其他好文 时间:
2014-06-08 15:02:02
阅读次数:
342
1.
说说简单的函数回调首先说说一种简单的函数回调机制(一种通过获取对象的指针来进行函数的调用方法)以下是代码演示---这是观察者(被回调)部分:class
Observer{public: // 抽象观察者的纯虚函数 virtual void UpdateMessage() = 0;};class...
分类:
编程语言 时间:
2014-06-06 11:51:11
阅读次数:
315
装饰者模式是JDK中另一个使用较多的设计模式,上一个是观察者模式(在Swing中大量使用),业内好的API设计无一离不开常见的设计模式,通常我们所说要阅读源码,也是为了学习大牛们的设计思路。————题记
设计模式
观察者模式:定义了对象之间一对多的依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会受到通知并自动更新。
装饰者模式:动态地将责任附加到对象上。若要扩展功能,装饰者提...
分类:
其他好文 时间:
2014-06-02 05:31:47
阅读次数:
234
NSNotificationCenter 较之于 Delegate
可以实现更大的跨度的通信机制,可以为两个无引用关系的两个对象进行通信。NSNotificationCenter 的通信原理使用了观察者模式; 1.
NSNotificationCenter 注册观察者对某个事件(以字符串命名)...
分类:
移动开发 时间:
2014-06-02 01:22:35
阅读次数:
289
注册的时候参数过多
释放的时候必须取消注册
只有一个回调,当注册的观察者过多的时候,会使得代码变得杂乱...
分类:
移动开发 时间:
2014-06-01 14:45:18
阅读次数:
369