java设计模式之中介者模式设计模式之中介者模式
主要为大家详细介绍了java设计模式之中介者模式,感兴趣的小伙伴们可以参考一下
中介者模式中介者模式
面向对象设计鼓励将行为分布到各个对象中, 这种分布可能会导致对象间有许多连接. 在最坏的情况下, 每一个对象都需要知道其他所
有对象.
虽然将一个系统分割成许多对象可增强可复用性, 但是对象间相互连接的激增相互连接的激增又会降低其可复用性. 大量的连接关系使得一个对象不不
可能在没有其他对象的协助下工作可能在没有其他对象的协助下工作(系统表现为一个不可分割不可分割的整体), 此时再对系统行为进行任何较大改动任何较大改动就十分困难. 因为行为被分
布在许多对象中, 结果是不得不定义很多子类以定制系统的行为. 由此我们引入了中介者对象中介者对象Mediator:
通过中介者对象, 可以将网状结构的系统改造成以中介者为中心的星型结构以中介者为中心的星型结构, 每个具体对象不再与另一个对象直接发生关系, 而是通过
中介者对象从中调停调停.中介者对象的引入,也使得系统结构不会因新对象的引入造成大量的修改.
中介者模式中介者模式: 又称调停者模式调停者模式, 用一个中介者对象中介者对象(Mediator)来封装一系列对象的交互, 使各对象不需再显示地相互引用, 从而使耦合松耦合松
散散, 而且可以独立地改变他们之间的交互独立地改变他们之间的交互:
(图片来源: 设计模式: 可复用面向对象软件的基础)Tips: 各Colleague只知道Mediator的存在, 并不需要知道其他Colleague是否存在
(不然怎么解耦呢), 它只需将消息发送给只需将消息发送给Mediator, 然后由然后由Mediator转发给其他转发给其他Colleague(由Mediator存储所有Colleague关系, 也只
有Mediator知道有多少/哪些Colleague).
模式实现模式实现
联合国转发各国声明, 调停各国关系:
各国向联合国安理会发送和接收消息, 安理会在各国间'适当地'转发请求以实现协作行为: