HelloWorldScene.h: 我们新增了两个函数,一个用于接收消息的回调函数,一个用于发布消息,当 然,通常消息的订阅者和消息的发布者不会是同一对象,这里只是为了简单才放 到一起。 HelloWorldScene.cpp(部分修改代码): 在init函数里,订阅了一个名为“test”的消息,并且创建了一个菜单,用于发布消息,现在用调试模式运行项目,效果如图: 单击菜单,我们将看到以下日志输
观察者模式 - Observer在观察者模式里,一个对象在状态变化的时候会通知另一个对象。参与者并不需要知道其他对象的具体是干什么的 - 这是一种降低耦合度的设计。这个设计模式常用于在某个属性改变的时候通知关注该属性的对象。常见的使用方法是观察者注册监听,然后再状态改变的时候,所有观察者们都会收到通知。在 MVC 里,观察者模式意味着需要允许 Model 对象和 View 对象进行交流,而不能有直
分析详见:http://lvxingzhelimin.blog.163.com/blog/static/1707165502011101655652697/ using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ConsoleApplication1
{
观察者模式是对依赖倒转原则很好的应用。单纯去看依赖倒转原则,我并不明白。什么“抽象不能依赖细节,细节要依赖抽象的”。看完观察者模式后,我觉得这一原则还是很经典,很实用的。 下面就利用《大话设计模式》中,举的前台和看股票的观察者模式的例子,来说一下我对这一原则的理解。 没有用观察者模式时: 具体的通知者(Secretary)和具体的观察者(StockObserver)
--[[
抽象主题(Subject)角色:主题角色把所有对观察考对象的引用保存在一个聚集里,
每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对
象,主题角色又叫做抽象被观察者(Observable)角色,一般用一个抽象类或者一个接口
实现。
抽象观察者(Observer)角色:为所有的具体观察者定义一个接口,在得到主题的通
知时更新自己。这个接口叫做更
--[[
抽象主题(Subject)角色:主题角色把所有对观察考对象的引用保存在一个聚集里,
每个主题都可以有任何数量的观察者。抽象主题提供一个接口,可以增加和删除观察者对
象,主题角色又叫做抽象被观察者(Observable)角色,一般用一个抽象类或者一个接口
实现。
抽象观察者(Observer)角色:为所有的具体观察