首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计方式(c++)笔记之十八(Mediator模式)

2013-10-25 
设计模式(c++)笔记之十八(Mediator模式)一、描述:是不是看到一个蜘蛛网的结构,这个别说是编写程序了,就是给

设计模式(c++)笔记之十八(Mediator模式)
一、描述:









      是不是看到一个蜘蛛网的结构,这个别说是编写程序了,就是给人看估计能让一大批的人昏倒!每个对象都要和其他的几个对象交流,对象越多,每个对象要交流的成本也就越多了,就单独维护这些对象的交流基本上就能让一大批程序员望而却步,这明摆着不是人干的活嘛!从这方面来,我们已经发现设计的缺陷,作为一个架构师,发现缺陷就要想办法来修改,我们思考一下,怎么来修改。


      大家都是学计算机的,应该在上学的时候讲过一些网络的基本知识,还记得网络拓扑有几种类型吗?总线型,环型,星型,(什么?想不起来?!惩罚一下自己去),我们来想想星型拓扑是什么什么样子的,如下图: 



设计方式(c++)笔记之十八(Mediator模式)




      星型网络拓扑中每个计算机通过交换机和其他计算机进行数据交换,各个计算机之间并没有直接出现交互的情况,结构简单,而且稳定,只要中间那个交换机不瘫痪,整个网络就不会发生大的故障,公司和网吧一般都采用星型网络,那也说明星型拓扑是深得民心,那我们来想想是不是可以把这种星型结构引入到我们的设计中呢?说干就干,我们先画一个示意图:


设计方式(c++)笔记之十八(Mediator模式)




      加入了一个中介者作为三个模块的交流核心,每个模块之间不再相互交流,要交流就通过中介者进行,每个模块只负责自己的业务逻辑,不属于自己的则丢给中介者来处理,看类图:


设计方式(c++)笔记之十八(Mediator模式)


我的工程目录:


            设计方式(c++)笔记之十八(Mediator模式)


注释:

main(),客户

IAbstractMediator,中介者接口

CMediatorNow,中介者实现类

IAbstractColleague,部门协作接口

CPurchase,采购管理

CSale,销售管理

CStock,存货管理

说明:CMediatorNow来组织IAbstractColleague接口的相互调用关系,客户main()直接访问CMediatorNow的接口进行业务处理。CMediatorNow很好的封装了业务,实现了高内聚。


部门协作接口:IAbstractColleague类



参考文献:《设计模式之禅》,《GoF_23种设计模式解析》

热点排行