感想
中介者模式:用一个中介对象来封装一系列的对象交互。
中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以对立地改变它们之间的交互。
中介者模式的优点:
- 通过将对象彼此解耦,可以增加对象的复合性。
- 通过将控制逻辑集中,可以简化系统维护。
- 可以让对象之间所传递的消息变得简单而且大幅减少。
- 提高系统的灵活性,使得系统易于扩展和维护。
中介者模式的缺点:
- 中介者承当了较多的责任,一旦中介者出现了问题,整个系统就会受到影响。
- 如果设计不当,中介者对象变得过于复杂。
以下例子以智慧房屋公司的产品为例子:
a.定义抽象的调度者:
1 | public abstract class Colleague { |
b1.实现调度者的警告器:
1 | public class Alarm extends Colleague { |
b2.实现调度者的咖啡机:
1 | public class CoffeeMachine extends Colleague { |
b3.实现调度者的窗帘:
1 | public class Curtains extends Colleague { |
b4.实现调度者的电视:
1 | public class TV extends Colleague { |
c.定义一个抽象的调度中心:
1 | public interface Mediator { |
d.实现调度中心:
1 | public class ConcreteMediator implements Mediator { |
e.客户端测试:
1 | public class App { |