Programming 版 (精华区)
发信人: zxg (排在队伍后面的人), 信区: Programming
标 题: 面向对象化程序设计中的消息驱动机制(二)
发信站: 哈工大紫丁香 (Wed Aug 4 08:31:46 1999), 转信
发信站: 锦城驿站 (Thu Jun 26 04:15:51 1997)
转信站: Lilac!ustcnews!ustcnews!sjtunews!swjtunews!swjtubbs
出 处: xnjd21.swjtu.edu.cn
一、面向对象技术概述
面向对象方法是一种以对象为中心的方法。任何一个对象,都可由其
属性和行为确切地描述,其中对象的属性信息由对象的行为传输和控制。
声明:
(1) 本系列的参考文献将在最后给出.
(2) 本系列文章您可以转载,但其中的部分内容未经允许不得在书面文章中引用.
二、消息驱动机制
在面向对象程序设计中,消息是事件的载体,不同的消息类型和形式
表示发生了不同的事件,从而引发不同的对象行为。因此,消息驱动和事
件驱动在很大程度上具有相同的含义。
由于消息传送在面向对象程序中具有特殊的地位,一个以消息驱动为
基础的软件的性能,与程序员对消息收集、分发和处理有直接的关系。消
息的收集是对当前程序状态信息的采集;消息的分发是分析消息并选择能
够推进程序进程的元素(即对象);消息的处理动作则是推进程序进程的
具体行为。因此,采用面向对象技术的程序的整个运行过程,就是对消息
进行收集、分发和处理的过程,即所谓的消息驱动机制。
消息驱动机制,使得形式上完全分离的各个模块、各个对象之间达到
了动态链接,同时打破了进程事先有序、过程驱动的传统程序设计方法。
程序执行的趋势将因为产生不同的事件、接收到不同的消息,向着不同的
方向或以不同的方式发展,事先是无法预料的。
笔者在用 C++ 开发一个软件生成平台中, 采用了如图1(图略)所示
的消息驱动机制。
该平台能可视化地开发基于DOS的多窗口应用程序图文界面。 流图中的关
键环节可看作三个结点:
⑴ 消息队列; ⑵ 消息分发; ⑶ 窗口对象和窗口控件。
其中消息队列结点负责消息的收集;消息分发结点依据消息的特征、发出
者、当前的进程状态等,选择发送消息的目的对象,并滤去无效消息,充
实有效消息的数据内容;每个窗口或控件都有自己的消息响应函数,它根
据当前消息内容执行相应的具体动作。三个环节紧密配合,成功地实现了
所有对象的动态链结,构成整个系统的驱动机制。
--
※ 来源:.锦城驿站 bbs.swjtu.edu.cn.[FROM: 202.115.65.102]
※ 修改:.zxg 于 Aug 4 08:31:45 修改本文.[FROM: sys03.hit.edu.cn]
--
※ 转寄:.紫 丁 香 bbs.hit.edu.cn.[FROM: sys03.hit.edu.cn]
--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: zxg.bbs@bbs.hit.edu.]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.628毫秒