调停者(mediator)与门面(facade)
以坦克大战为例,游戏里边有坦克,子弹,暗堡,坦克可以撞坦克,撞墙,撞暗堡,子弹可以撞坦克,之间有各种各样的关系,此外,另加一个事物也会增加与其他事物的联系。如果是这样的话,里边的关系会特别特别混乱,所以现在有这样一种需求,我一个tankFrame直接去操纵这些个关系不合适,我先把关系封装一下,使用大管家(门面)去管理,然后我tankFrame去管理门面就行了。
一个更形象的例子,以前找政府机构办点事情,如开个证明,先去村委会,它搞不了,让你去直接找村长,你找到村长,村长让你去镇办公室,你到了镇,镇又让你去县...这时候,你多么希望有一个中间门面,直接告诉你找谁不方便多了。这就叫facade
又一个比喻,一个新系统进来,要与各种系统打交道,太麻烦了,这时候可以抽出一个专门的系统来,所有的系统都与这个系统打交道,互相之间在也不打交道了,这个就叫mediator
它们都差不多,对外叫门面,对外叫调停者,它们有非常大的应用,叫做消息中间件,哪个部门产生消息,放到中间去,谁需要用,就去
拿。这样把耦合就解散了。
作者:万能包哥 出处:http://www.cnblogs.com/mybloger/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |