观察者模式的boost及宏实现

时间:2016-09-11 11:19:03
【文件属性】:

文件名称:观察者模式的boost及宏实现

文件大小:4KB

文件格式:HPP

更新时间:2016-09-11 11:19:03

观察者模式 boost 事件 注册 解藕

这是一个观察者模式的简化实现,有助于代码的解耦。 * 你可以预先定义一些事件,事件的定义使用OBSERVER_EVENT宏: * OBSERVER_EVENT( Name, ) * Name 是事件的名称 * Params 是参数表 * 比如 * OBSERVER_EVENT( MyEvent, int, std::string, long ) * * 有必要的时候,就可以将一个回调函数绑定到这个事件(订阅) * observer a; * a.subscribe( Handle ); * Name 是事件的名称 * Handle 是回调函数,它的参数,应该和事件的参数表匹配 * 当然也可以撤销订阅 * a.unsubscribe(); * * 当事件发生时,可以通过 observer 对象来发送事件 * a.shot( ); * * 这个对象可以作为基类使用,以帮助对象解耦,这样设计的优点在于,事件的定义、回调的参数表 * 必须严格匹配,否则就会发生编译错误,以防止代码错误。 * 特别的,参数可以定义为引用类型,以便让回调函数可以修改它,这时发送事件时,要注意使用 ref() 来包装参数。


网友评论