Cocos中的观察者设计模式与通知机制,cocos观察者
观察者(Observer)模式也叫发布/订阅(Publish/Subscribe)模式,是 MVC( 模型-视图-控制器)模式的重要组成部分。天气一直是英国人喜欢讨论的话题,而最近几年天气的变化也成为中国人非常关注的话题。我会根据天气预报决定是坐地铁还是开车上班,我的女儿也会根据天气预报决定明天穿哪件衣服。于是我在移动公司为我的手机定制了天气预报短信通知服务,它的工作模型如图所示。
在参数回传方面通知机制要比委托模式好很多。通知机制可以实现一对多参数传递,而委托模式只是一对一参数传递。
更多内容请关注国内第一本Cocos2d-x 3.2版本图书《Cocos2d-x实战:C++卷》本书交流讨论网站:http://www.cocoagame.net更多精彩视频课程请关注智捷课堂Cocos课程:http://v.51work6.com欢迎加入Cocos2d-x技术讨论群:257760386欢迎关注智捷iOS课堂微信公共平台
JAVA 异步观察者模式 的源代码(完整的),不要同步的,好的给加分
package TestObserver;import java.util.Iterator;import java.util.Vector;/** * * @author Seastar */interface Observed {public void addObserver(Observer o);public void removeObserver(Observer o);public void update();}interface Observer {public void takeAction();}class Invoker {private Observer o;Handler handler;public Invoker(Observer o) {new Handler();this.o = o;}private class Handler extends Thread {public Handler() {handler = this;}@Overridepublic void run() {o.takeAction();}}public boolean TestSameObserver(Observer o) {return o == this.o;}public void invoke() {handler.start();}}class ObservedObject implements Observed {private Vector<Invoker> observerList = new Vector<Invoker>();public void addObserver(Observer o) {observerList.add(new Invoker(o));}public void removeObserver(Observer o) {Iterator<Invoker> it = observerList.iterator();while (it.hasNext()) {Invoker i = it.next();if (i.TestSameObserver(o)) {observerList.remove(i);break;}}}public void update() {for (Invoker i : observerList) {i.invoke();}}}class ObserverA implements Observer {public void takeAction()......余下全文>>