(Mediator)中介者模式的Java实现(加修改)

用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式地相互引用,香港虚拟主机,从而使其耦合松散,而且可以独立地改变它们之间的交互。

通用类图:

大概理清上面简单例子中的意图之后,给出中介者模式适用场景:

3、想定制一个分布在多个类中的行为,而又不想生成太多的子类。

中介者就是一个处于众多对象,并恰当地处理众多对象之间相互之间的联系的角色。

同事类族:

中介者类族:

测试类:

测试结果:

虽然以上代码中只有两个具体同事类,香港空间,并且测试类中也只是创建了两个同事,但是这些我们都可以根据中介者模式的宗旨进行适当地扩展,即增加具体同事类,然后中介者就得担负更加重的任务了。为啥?我们看到上面具体中介者类Mediator中的execute()方法中现在就有一堆冗长的判断代码了。虽然可以把它分解并增加到Mediator类中的其它private方法中,但是具体的业务逻辑是少不了的。

所以,在解耦同事类之间的联系的同时,中介者自身也不免任务过重,因为几乎所有的业务逻辑都交代到中介者身上了,可谓是“万众期待”的一个角色了。这就是中介者模式的不足之处了 。

此外,上面这个代码例子是相当理想的了,有时候我们根本抽取不了“同事”之间的共性来形成一个AbstractColleague抽象同事类,这也大大增加了中介者模式的使用难度。

修改后的同事类族:

修改后的中介者:

测试之后的结果与修改前一样。

本文出自 “蚂蚁” 博客,网站空间,请务必保留此出处

见过旅行风景,就这样,慢慢学会了长大。

(Mediator)中介者模式的Java实现(加修改)

相关文章:

你感兴趣的文章:

标签云: