POCO C++库学习和分析 -- 通知和事件 (一)
1. 信息交流的方法
在讨论Poco中事件与通知之前,先来聊一聊信息交流的方法,这样或许有助于理解接下去的讨论。我们都知道数据之间存在关系。在数据库模型里,关系被分为一对一,一对多,多对多。在用计算机去解决数据关系的时候,多对多关系往往被分解成为数个一对多,而一对多的关系最终被分解成为数个一对一关系。如果用关系的观点去看消息流动,消息存在一个或多个发起者,即消息源Source;消息也存在一个或多个接收者,即目标对象Target;同时消息Message本身具有内容,即多种消息。简化成为最终的一对一模型,来描述消息的,那么这个模型里的三个要素就是,Source,Message,Target。
把这个模型放到C++语言中,Source,Message,Target分别被抽象成为三个类。那么消息传送的方式可以被写成如下两种方式:
1.1 放置模型于编程语言
从 消息源的角度来考虑问题,整个消息发送的流程是:a) 目标向消息源注册, Source.Register(Target)
函数实现大致是这样的