JAVA设计模式之Mediator模式

来源:互联网 发布:前景提取算法综述 编辑:程序博客网 时间:2024/05/22 17:05

现实生活中,有很多实际的现象,比如,房产中介,购房者可以不去一家家房产商去跑,去联系,而可以通过房产中介来获取房产商的信息,同样的房产商也不用自己联系顾客,而是通过中介来完成。同样的,在一个大公司里,如果让每个同事直接交流,则这样的效率显然很低下,因为每个员工可能需要维护很多个同事的信息。这时,可以建立一个交流中介,由交流中介来负责传达每个同事的信息请求,这样,每个员工只需要维护一个中介的信息就OK了,而所有的工作都交付给中介来完成,由中介来负责维护各个同事的信息。

 

中介者模式,就是解决上面一类问题而提出的设计思想。如果一个对象需要和很多其他的对象交互,那么他就需要维护很多个对象的信息,这样非常不利于对象的维护。对于这样的多对多关系,我们可以采用中介者模式后,将其关系编程一对多关联,降低了各个对象之间的耦合度。由中介者统一管理各个对象之间的联系和交互行为。

 

在很常见的MVC模式中,Controller的角色其实就是一种Mediator,充当Model和View之间的中介,负责Model和View之间的交互。

 

中介者模式的组件结构如下:

 

vv

在使用中介者模式的时候,在Mediator添加Colleague的时候,就建立Mediator和该Colleague的关系

在addColleague方法中调用colleague.setMediator(this)来建立。而不是在Colleague的构造方法中传入Mediator对象。这样可以隐藏这种双向关联关系。

 

 

原创粉丝点击