中介者模式--学习理解

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


    分析:面向对象设计鼓励将行为分布到各个对象中。但是这种分布可能会导致对象间有许多连接。在最坏的情况下,每个对象都知道其他所有对象。

    思想和观察者模式类似,但是观察者模式侧重的是维持控制中心下属个对象的数据一致性问题,观察者的作用还是起到帮忙发送消息,通知其他对象的作用,并未涉及对象之间的复杂交互。

    而中介者模式的思路是,通过提供一个中介者,中介者内部封装好子系统所有对象之间的交互逻辑。而后所有对象内部都聚合一个中介者,当对象遇到需要和其他对象交互才能完成任务时,就给中介者发消息。而中介者在接收到消息之后就会更加一系列if-else找到封装好的交互逻辑,完成交互任务。

    中介者模式通过封装对象交互逻辑,并暴露接口给对象来实现交互逻辑的调用,可以有效避免在其他对象内部独立封装交互逻辑,确保因为因为对象之间相互调用形成复杂的网状关系,从而有效降低了各个对象之间的耦合度,更加有利于后期扩展和维护。

    缺点:中介者模式负责封装所有的对象交互逻辑,必然会导致中介者类的复杂度急剧上升,并且一旦中介者出现问题,很可能整个子系统都将变得不可用。

    实际案例:SpringMVC,View通过和Model(Service)交互来完成任务,其中的Controller就是这个过程的中介者。View通过发送网络请求给控制器,而控制器则负责封装好底层各个Service之间的交互逻辑。从而避免了由Service来封装交互逻辑,确保了各个Service之间的独立性。同样的,Service其实
也是中介者,负责封装各个DAO之家的交互逻辑,从而确保各个DAO之间的独立性。

    总之,如果需要将类内部和其他类交互的逻辑从类中剥离出去,达到解耦,降低对象之间依赖复杂度的目的,使用中介者模式是一个不错的选择。



  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值