基于对象的消息传递

基于对象的消息传递

ID:11379913

大小:27.00 KB

页数:0页

时间:2018-07-11

基于对象的消息传递_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《基于对象的消息传递》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、在宏观世界中,信息的传递不管是哪种形式,都是以一定的介质传递出去的,而信息流动的源驱动力是存在于宏观世界的某种对象的行为使能。但是对于信息发生是对象自身的使能。在一般意义上来说,对象的信息发生是作用于介质对象的而非某些特定的通信对象,因为在宏观的信息具有相对的广泛性,一个信息是通过介质对象作用于有效范围内的所有对象,只不过对于不同对象其意义是不尽相同或者说是无意义的。但是对于有些信息的传递来说,其本身的属性即为隐秘的通信,其内容或者规则是不为外界所知的。例如两对象间的隐私信息传递。对于信息的获取只存在被动式,主动式就是对象本身的一种行为,

2、但是对于消息来说主动式是信息传递的一种形式变种。而被动式则是外界介质传递的信息对对象造成的影响。因此在信息的定义上来说,信息是相对于实体对象来说的,信息只有在一定的范围内存在作用效力,并且信息只有通过外界介质来互相施加作用。如果用这种基于对象的思想来抽象一个消息类,我们可以消息类定义为一个广义的消息的环境,对于一个复杂的环境来说,也许存在多个消息域,但是为了简化设计,我们假定只存在一个消息域,也就是说,消息类的实体对象只有一个。我们分析一下现实中的一个消息域可以归纳一个消息环境存在以下几个对象:1.消息对象这个对象维护着一个消息列表。(一

3、般来说一个消息的存在期是有限的,但是有的消息也会长期存在)2.对象列表这个对象维护着一个环境中存在的对象列表。(在现实世界中一个对象的消息对环境具有依附性,也是这种依附性产生了环境中对象的列表。)3.消息介质这个对象主管消息的分发。对于一个环境中的对象来说,它想传递一个消息是要作用于消息环境对象的,我们可以用下面的表来说明:接口1接口2对象1消息环境对象2首先来说接口1是外界消息环境的对外接口,这个接口主要的作用是:消息传递的接口,接口2是一个对所有对象可见的的接口,并且这个接口的内则是为其它对象所知的,所以这个接口虽然存在于某个对象内部

4、,但并不是为对象本身定义,而是一个即成的事实。就像一个聋子无法通过耳朵这个接口获取声音信息,我这里将这个接口抽象成一个,而这个消息有具体不同的类型则是内部的工作。同时,消息环境对象还有另一个接口,它是对象进入环境对环境的影响,根据前面所说,这个影响主要是更新了对象列表。所以我们可以对这个抽象出的消息类下一个比较具体的定义:#信息对象#对象列表对象#代表隐藏属性传递对象接口更新接口也就是要定义这个类,我们首先要存在信息类(message)对象列表类(obi_list)在c++中我们可以这样定义这个类Classinfo_env{Private

5、:Messagemsg;Obj_listlist;Public:Info_env();Intcreat_message(intmessage,intmsg_spot);Intupdate_obj();}整体的信息环境信息的定义是:classgetmessage//对象通信接口为实体对象拥有{Private:IntG_b;//对象信息接口标识符Public:IntGet_message(intm)//获取消息(被动式){Returnm;}};Structmessages//消息列表{Messages*next;Intmsg;Intspot;

6、};Classmessage//消息类{Private:Messages*M_p;//消息队列当前指针MessagesM_H;//消息队列头Inthandmsg(Messages*M_p);//分发消息Public:Message()//消息可以自定义不一定为intspot代表信息标识比如0为无意义信//息1为全播信息2为组播信息3为单播信息{M_H.msg=0;M_H.spot=0;M_P=&M_H;}Intaddmessage(intmessage,intmsg_spot);Intdelmsg(Messages*M_p);};Stru

7、ctmsg_members//消息成员列表,由对象成员对象管理{Msg_member*next;Getmessage*p;//这个接口可以看作一个事先规定好的准则IntG_b;//对象信息接口标识符};ClassObj_list//对象成员类{Private:Msg_membersm_mH;//消息成员列表头Msg_members*m_mP;//当前成员指针Public:Obj_list(){m_mpP=&m_mH;M_mP->G_b=0;//标识符为0代表空对象}Intaddlist(Getmessage*p);//添加对象--主要是添

8、加msg_members链表以及返回标识符Intdellist(intG_b);//删除对象};Classinfo_env{Private:Messagemsg;Obj_listlist;Pu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。