标签:
抽象观察者(Observer)。
抽象观察者是一个接口,它有一个更新(update)函数。
详细观察者(ConcreteObserver)。Observer接口的详细实现。
详细主题(ConcreteSubject)。Subject接口的详细实现。
引入Subject和Observer这两个接口后,不仅提高了系统的可复用性。还减少了耦合度。由于ConcreteSubject仅仅须要一个实例。所以我们採用单例设计模式实现。观察者模式还能够有其它变形,若要深入了解,能够參考GoF。
通知机制
在Cocos2d-x框架中,观察者模式的详细应用有一种通知(notification)机制。
通知机制与托付机制不同的是。前者是“一对多”的对象之间的通信,后者是“一对一”的对象之间的通信。
如图所看到的,在通知机制中对某个通知感兴趣的全部对象都能够成为接收者。
首先,这些对象须要向通知中心(__NotificationCenter)调用addObserver函数进行注冊。在投送对象投送通知给通知中心时。通知中心就会把通知广播给注冊过的接收者。全部的接收者都不知道通知是谁投送的。更不关心它的细节。
投送对象与接收者是一对多的关系。接收者假设对通知不再关注,会给通知中心调用removeObserver或removeAllObservers函数解除注冊,以后不再接收通知。
在參数回传方面通知机制要比托付模式好非常多。通知机制能够实现一对多參数传递。而托付模式仅仅是一对一參数传递。
《Cocos2d-x实战 C++卷》现已上线,各大商店均已开售:?
京东:http://item.jd.com/11584534.html
当当:http://product.dangdang.com/23606265.html
互动出版网:http://product.china-pub.com/3770734?
《Cocos2d-x实战 C++卷》源代码及样章下载地址:
源代码下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1155&extra=page%3D1
样章下载地址:http://51work6.com/forum.php?mod=viewthread&tid=1157&extra=page%3D1 ?
版权声明:本文博客原创文章,博客,未经同意,不得转载。
标签:
原文地址:http://www.cnblogs.com/bhlsheji/p/4647311.html