在层与层之间如果存在着直接的相互依赖的关系,那么可以利用观察者模式将直接的依赖关系转化成间接的依赖关系,并且用这种模式降低层与层之间的偶合度.
class FG_OSMsgObserver
{
public:
*/
virtual ~FG_OSMsgObserver() {}
*
* 注册为操作系统的接收者的对象通过该接口来接收系统消息
*/
virtual void OSMessage(FG_Message * pMsg) = 0;
};
底下的系统Adaptor可以调用osmessage来广播消息
class FG_OSAdaptor
{
public:
*
* 每个系统消息只能有一个观察者(即消息接受者,/ref FG_OSMsgObserver的子类)
* /param type 系统消息类型
* /param pObserver 注册的系统消息的观察者指针
* /return 该消息以前设置的观察者指针
*/
FG_OSMsgObserver * SetMsgObserver(const WORD type, FG_OSMsgObserver * const pObserver);
}
上层的框架层可以调用下面的setmsgobserver来实现注册的功能.
在下面注册的情况下就 可以直接的进行消息的广播的过程.