/*hdr
** Copyright ...
** AUTHOR MichaelMa
** DATE 4-May-2014
** DESCRIPTION implement a mode of observer in C
** NOTE may be some bugs ...
分类:
编程语言 时间:
2014-05-10 09:53:03
阅读次数:
679
先创建一个person类并定义name和sex属性,当person的name或sex属性发生变化时会执行一个action/**
* KVO --- Key Value Observe(键值观察者) * KVO 是一种设计模式,属于观察者设计模式 * 观察者设计模式涉及到...
分类:
移动开发 时间:
2014-05-09 16:15:37
阅读次数:
424
1、策略模式
主体主要是添加一个算法的基类,这样就可以通过创建不同的派生类算法,来达到运行时动态改变行为。
2、观察者模式
观察者 关键是要继承统一的监听接口。
通知者 主要是实现:观察者list、添加观察者、删除观察者、通知观察者等接口。
可分为:推送观察者模式,拉取观察者模式。
3、装饰模式
主要是通过装饰品替换装饰者来改变装饰者的行为。因此,装饰品要与装饰者有相...
分类:
其他好文 时间:
2014-05-09 09:10:18
阅读次数:
264
本文原文请见:http://www.raywenderlich.com/46988/ios-design-patterns.由
@krq_tiger(http://weibo.com/xmuzyq)翻译,如果你发现有什么错误,请与我联系谢谢。适配器(Adapter)模式适配器可以让一些接口不兼容的类...
分类:
移动开发 时间:
2014-05-08 23:08:51
阅读次数:
587
在战争年代,战争双方时不时受到敌军飞机的轰炸,于是人们发明了航空警报,并派几个侦察兵放哨,一但敌机来临,立即拉响航空警报,这样所有的收听者就能听到报警逃跑。上述情节,看似平常,其实是观察者模式是完美体现。...
分类:
其他好文 时间:
2014-05-07 06:49:06
阅读次数:
342
KVO的使用KVO是一种设计模式,名为观察者.addObserver:forKeyPath:options:context:通知其他对象的方法,这个方法在NSObject中就已经申明了,也就是说任何继承自NSObject的对象都可以使用KVO.我们来实现一个对象a值改变的时候去通知对象b.新建两个M...
分类:
其他好文 时间:
2014-05-07 02:04:07
阅读次数:
325
应对的情况:当一个可观察者的状态发生改变时,观察者的数据也要实时更新。
你可能第一时间会想到的是,直接在可观察者类上调用观察者的方法就行了。是的,这是一种最直接,也是最简单的方法。但这样做就使得可观察者和观察者的耦合性很高,且不能动态更改观察者的数量。
我们或许可以这样做,写一个可观察者的接口:
public interface Subject {
public void...
分类:
其他好文 时间:
2014-05-06 14:58:55
阅读次数:
222
今天我们来谈谈观察者模式的演变过程 和委托事件。
生活中,当某件事发生时,应该通知所有的相关者。例如,上课地点有变,要通知所有学习这门课的同学。
在软件设计中,当一个对象的状态发生变化是,如何通知与它相关的所有对象,就是我们今天要谈到的观察者模式。...
分类:
其他好文 时间:
2014-05-04 18:37:16
阅读次数:
328
常用的有创新型的设计模式:简单工厂、抽象工厂和单例模式;行为型的设计模式:模板设计模式、观察者模式和命令模式;结构性的设计模式:适配器设计模式、代理模式(静态和动态两种,典型的有在spring的AOP编程中使用)和装饰器设计模式。...
分类:
其他好文 时间:
2014-05-04 08:56:36
阅读次数:
313
从前,有个放羊娃,每天都去山上放羊,一天,他觉得十分无聊,就想了个捉弄大家寻开心的主意。他向着山下正在种田的农夫们大声喊:“狼来了!狼来了!救命啊!”农夫们听到喊声急忙拿着锄头和镰刀往山上跑,他们边跑喊:“不要怕,孩子,我们来帮你打恶狼!”农夫们气喘吁吁地赶到山上一看,连狼的影子也没有!放羊娃哈哈大笑:“真有意思,你们上当了!”农夫们生气地走了。第二天,放羊娃故伎重演,善良的农夫们又冲上来帮他打狼...
分类:
其他好文 时间:
2014-05-02 18:59:57
阅读次数:
334