调停者,观察者,门面模式

调停者(Mediator)模式

调停者模式是常常被滥用的几个模式之一,在下列情况下不应当使用调停者模式。

1)不应当在责任划分混乱的时候使用

2)不应当对“数据类”和“方法类”使用

         初级设计师常常会设计出这样的一种系统:让一系列类只含有数据,另一些类只含有方法。比如,描述一个客户时,这些设计师首先设计出一个叫做客户数据的类,只含有客户数据;另外再设计一个类叫做“管理类”,含有操作客户以及此客户购买公司产品、付账的方法。管理类自然会涉及到其他的类,诸如产品数据类、订单数据类、付账数据类等。如此一来,“管理类”就变成一个操作所有的数据类的方法类,这是很没有道理的设计,但是有些设计师错误的把这叫做“调停者模式”的应用。

3)正确理解封装

封装首先是行为,以及行为所涉及的状态的封装。行为与状态是不应当分割开来的。调停者模式的用途是管理很多的对象的相互作用,以便使这些对象可以专注于自身的行为,而独立于其他的对象。

三、调停者模式与其他模式的关系 

门面模式

门面模式和调停者模式很相似,两者均用来给出一个低耦合度的系统。门面模式为一个子系统提供一个简单的接口,其中消息的传送是单方向的,因为门面模式的客户端只通过门面类向子系统发出消息,而不是相反的情况。

观察者模式

调停者模式与观察者模式是功能相类似的设计模式,它们之间是相互竞争的关系。换言之,使用了其中一者往往意味着放弃另一者。观察者模式通过引入观察者对象和主题对象来达到将通信分散化的目的;而调停者模式则封装了对象之间的通信,从而将通信集中到一个个中介对象中。

你可能感兴趣的:(门面模式)