中介者模式

    在软件系统中,特别是一些交互及系统中,常有互相之间包含复杂行为联系的大量对象。可以想象一下用过的许多桌面软件,常包含许多的功能模块和显示模块,用户产生一个行为时,多个模块可能都需要产生相应。
    如果这些对象间都是直接的与相关的对象通信,那整个系统内的关联关系将会非常复杂,难以维护。而且耦合度很高,难以修改和扩展。如过能出现一位交警叔叔来作为这复杂的路面情况的指挥者就好了,终结者模式就是这种思想来解决这个问题。通过引入一个中介者,所有的对象都直接与他通信,而不是其他的不定量的对象。这将对象间的耦合度大大降低了,将复杂的多对多的网状结构简化成了一对多的星状结构。同时,将这些对象关系统一管理也便于维护、扩展。
     中介者模式(Mediator Pattern):用一个中介对象(中介者)来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。中介者模式又称为调停者模式,它是一种对象行为型模式。
    
    Mediator抽象中介者。
    ConcreteMediator 具体中介者
    Colleague 抽象业务类,包含抽象中介者类型的成员,以便交互
    ConcreteColleague 具体业务类
    
    上图是一个最简单的中介者模式的结构图。中介者通常可以起到两种作用:
  • 中转作用:为业务对象间的交互传递消息,起到中转站的作用
  • 协调控制作用:中介者可以作为一个对象间复杂关系的管理者,通过他的协调和对关系的封装,使系统中的复杂关系更加清晰、有条理。
    
    总结:
        优点:
  • 降低对象间的耦合度
  • 降低系统复杂度
  • 提高可维护性
  • 提高可扩展性,增加新业务类无需修改原有业务类。通过集成原有中介者,也可以无修改的扩展中介者。
        缺点:
  • 中介者可能职责过重,逻辑过于复杂,容易出错
        适用场景:
  • 系统中存在大量关系复杂的类
  • 希望通过统一管理关系,简化关系模型同时提高扩展性
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值