消息循环 ,各种对象将事件注册到事件容器,注册事件的对象到对象容器中,监察者监察所有事件是否触发,若是触发,则监察者从对象容其中选取注册事件的对象,调用其回调函数或者某种方式通知它。消息循环实质上是对象之间的通信,对象可能是物理世界的对象,也可以是抽象出来的,监察者充当路由功能。
举个例子:
一个房间里面有一群人,他们按照一列一列的坐好,每一列第一个是组长,他们名字叫浏览器,桌面,开始菜单等等的,每一列都由不同的组员,有的叫按钮,有的叫图标,输入框什么的,在房间门口站了一个人叫内核(或者应该是explorer,xorg),内核手里有一张表里面有所有人的名字,门外面有几个送快递的叫做鼠标,键盘,网络等,这几个快递员不停的送快递给房间里面的人,当然先是送到内核的手里,内核通过查表,把每个快递送到各个组长的手里,由各个组长在把快递传下去给组员,组员打开快递,阅读里面内容,按照指示执行一些动作。
框架 基础类库和消息循环,消息循环实际是通信过程,消息是通信协议。
拿ui来说,抽象出窗口,菜单,按钮图标等等的基础类库,以及这些类能够响应的消息类型(当然也可以自定义),由程序员选择类库中的类排列组合并且实例化,并设计消息响应过程,注册到框架中去,框架负责传递各种消息到对象,对象接收到消息按照设计的响应过程执行。框架抽象特定系统的一些对象和事件以及固定流程,搭建好通信路由机制,程序员学习并使用这些对象和事件,达到预定目的。