一个有趣的网站!
定义:
中介者模式用一个中介对象来封装一些列的对象交互。
中介者不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变他们之间地交互
UML
代码实现
Mediator抽象中介者类
Colleague抽象同事类
ConcreteColleague1同事具体
ConcreteColleague2同事具体2
ConcreteMediator中介者具体
客户端代码
总结
优点:
1、降低了类的复杂度,将一对多转化成了一对一。
2、各个类之间的解耦。
3、符合迪米特原则。
缺点:中介者会庞大,变得复杂难以维护。
使用场景:
1、系统中对象之间存在比较复杂的引用关系,导致它们之间的依赖关系结构混乱而且难以复用该对象。
2、想通过一个中间类来封装多个类中的行为,而又不想生成太多的子类。
注意事项:不应当在职责混乱的时候使用。
全部评论