请登录

Github帐号登录
博主提供技术支持服务,项目代做等服务QQ975532442
  • 首页
  • 博客
  • 算法
  • 前端
  • Linux
  • 数据库
  • 后端
  • 标签
  • 友情链接
  • 登录
  • 注册
1792°
牧码人
发表于: 2019-09-19 18:01

23个设计模式之中介者模式

一听中介大家应该就知道了吧。现实中有没有找过房屋中介租房,买房之类的。大家讨厌中介的一点应该是因为他多赚了你钱。但是中介还是有好处的,比如你找房子更快了,不用自己满大家跑了。但是人家干了活就应该收钱啊,毕竟管理着一大批的租客跟房主。黑心中介除外啊(本人也非常讨厌黑心中介)。在代码中同样存在着中介者模式。

什么是中介者模式

来自大话:“用一个中介对象来封装一系列的对象交互。中介者对象使各对象不需要直接交互从而使耦合松散,可以独立改变他们的交互。” 中介者模式类图.png

mediator:房屋中介所抽象 concreteMediator:房屋中介所具体实现(上面是总店,下面是具体的分店) colleage:客户 concreteColleage:具体的客户(用状态区分1是房主2是租客) 这里举例不是很恰当。房主跟租客按理来说需要不同的抽象实现。但是大家理解下,我只讲个思想。

在这类图中mediator依赖于客户,必须知道所有的客户。客户跟客户之间不需要直接通信,租客A跟房主A不需要直接通讯。有房出租告诉中介,中介转发给租客。这就是中介者模式,在代码中同样如此。两个不需要沟通的对象,就找第三者沟通。这也是迪米特法则

中介者模式的优缺点

  • 优点 解耦,集中管理减少了不必要的麻烦。减少了沟通成本。
  • 缺点 它的优点也是它的缺点,随着客户的增多,中介者管理的对象就越来越多。中介者的职责就变得越来越多,也变得越来越复杂。所以这也是房屋中介收钱的原因,毕竟管理那么多房还是很累的。

总结

虽然中介者模式优点明显,缺点也明显。但是我们平时一直用着这个场景,如html页面。各个组件是不需要直接通信的,都是由dom对象统一管理。所以中介者模式适合的场景就是:有一组对象以定义良好,但是进行了过多的复杂通信的场合。


注意:本文归作者所有,未经作者允许,不得转载

点赞 0
#设计模式 #java
阅读全部

已有 0 条评论

    我有话说: @

    热门文章

    1. java根据模板导出pdf(带源码)

      5907 阅读
    2. webSocket部署到远程服务器连接不上

      4665 阅读
    3. 本站看点

      4510 阅读
    4. 史上最详细linux上安装mysql(centos7)

      3946 阅读
    5. 23种设计模式合集(学习笔记)

      3845 阅读
    6. 记一次Git fork的经历

      3498 阅读
    7. 1.服务的注册与治理(eureka)

      3297 阅读
    8. 2018第九届届蓝桥杯国赛回顾(真题解析)

      3289 阅读
    Copyright © 牧码人 赣ICP备2022000459号