在学习设计模式的时候,发现这三个模式在一定程度上很是相似。所以总结一下,加以区分。

(一)中介者模式。

    所谓中介,在我们生活中很是常见,我们买房子可以有中介公司,找兼职也可以有中介公司。以买房子为例。中介者把所有的买房人、卖房人的需求和特点都结合到一起,把适合的房子提供给合适的人。

    首先我们要理解中介者模式的定义:用一个中介者对象来封装一系列对象的交互。中介者使得各对象不需要显式地相互引用,从而解耦合,独立改变他们之间的交互。

中介者模式的示意图:

  

(二)代理模式

    我们的身边肯定不乏有什么服装代理、手机代理等等。我们买衣服也不是直接到服装厂去,而是到商场去。代理模式可以这样理解。服装厂把买衣服的职责托付给商场,商场代替服装厂卖衣服,商场直接与客户交互,而非服装厂。

    代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。

代理模式的示意图:

(三)外观模式。

    外观模式其实特别容易理解。比如我们去饭店吃饭,我们不用管饭菜是如何做的,即不用与做饭材料交互,只需与饭店的服务员交互即可,我们不用管服务员是如何上菜的,上菜就好。

    外观模式的定义:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

外观模式的示意图:

 

外观模式PK中介者模式:

1.外观模式是结构型模式,中介者模式是行为型模式。
2.外观模式是对子系统提供统一的接口,中介者模式是用一个中介对象来封装一系列同事对象的交互行为。

3.外观模式协议是单向,中介者模式协议是双向

4.外观模式所有的请求处理都委托给子系统完成,而中介者模式则由中心协调同事类和中心本身共同完成业务。

外观模式PK代理模式:

1.代理模式中的代理角色和真实角色都继承于同一类。而外观模式是多个类的集合。

2.代理角色与真实角色接口相同,功能一致,代理角色实现的是真实角色的功能。外观者模式的子系统功能不同,根据用户不同需要与外观类统一配置。

代理模式PK中介者模式:

1.代理模式是一对一,一个代理只能代表一个对象。中介者模式则是多对多,中介者的功能多样,客户也可以多个。

2.只能代理一方。如果PB是A的代理,那么C可以通过PB访问A,但是A不能通过PB访问B。对于中介者模式而言,A可以通过中介访问B,B也可以通过中介访问A。

    认识还是很浅的,不当之处,还望各位指教!


中介者模式、代理模式和外观模式的Pk相关推荐

  1. 带你认识4种设计模式:代理模式、装饰模式、外观模式和享元模式

    摘要:本文我们主要介绍结构型模式中的代理模式.装饰模式.外观模式和享元模式. 本文分享自华为云社区<快来,这里有23种设计模式的Go语言实现(三)>,原文作者:元闰子 . 设计模式(Des ...

  2. java23中设计模式(1)-facade(门面,外观)模式

    java23中设计模式(1)-facade(门面,外观)模式 写在前面 学习java以来不断听到各种设计模式,各种框架也大量使用模式 面试的时候曾经也被问过关于设计模式的问题,但是一直没有 系统的了解 ...

  3. 代理模式vs适配器模式vs外观模式

    一.定义 代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问. 适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口,使得原本接口不兼容而不能一起工作的那些类可以 ...

  4. 用最简单的例子说明设计模式(一)之单例模式、工厂模式、装饰模式、外观模式...

    设计模式 所谓设计模式,就是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案).使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.设计模式使人们可以更加简单 ...

  5. 结构型模式(五)门面模式(Facade Pattern 外观模式)

    一.模式定义 门面模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统 ...

  6. JavaScript设计模式(三):结构型设计模式-外观模式、适配器模式、代理模式、装饰者模式、桥接模式、组合模式、享元模式

    JavaScript设计模式 - 结构型设计模式 套餐服务-外观模式 外观模式(Facade) 水管弯弯-适配器模式 适配器模式(Adapter) 适配异类框架 参数适配 牛郎织女-代理模式 代理模式 ...

  7. 图解Java设计模式学习笔记——结构型模式(适配器模式、桥接模式、装饰者模式、组合模式、外观模式、享元模式、代理模式)

    一.适配器模式(类适配器.对象适配器.接口适配器) 1.现实生活中的例子 泰国插座用的是两孔的(欧标),可以买个多功能转换插头(适配器),这样就可以使用了国内的电器了. 2.基本介绍 适配器模式(Ad ...

  8. 外观模式和代理模式的联系和区别_java23种设计模式-结构型模式之外观模式

    外观模式(Facade) 外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合 ...

  9. 【白话设计模式二】外观模式(Facade)

    为什么80%的码农都做不了架构师?>>>    #0 系列目录# 白话设计模式 工厂模式 单例模式 [白话设计模式一]简单工厂模式(Simple Factory) [白话设计模式二] ...

最新文章

  1. 计算机连上网没网络连接,电脑显示本地网络连接但是宽带没连上怎么办? 爱问知识人...
  2. 如何实现 集群化/Session 复制-doc(cluster-howto.html)
  3. 分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境(服务器端及客户端)(转)...
  4. 如何使用验证控件对DropDownList进行验证
  5. java怎么释放分配的内存,linux 内存的分配和释放,linux分配释放
  6. android service莫名启动问题
  7. C语言课后习题(16)
  8. PLC编程之ST语言
  9. 周杰伦 jay《青花瓷》mp3 下载/试听/MV/在线播放
  10. 2019年SpringBoot视频教程【全网免费】每周更新
  11. 内核编译支持bonding模块
  12. git不能push文件
  13. 护眼灯有用吗?双十二买什么样的护眼灯真的有效果
  14. 简述created和mounted的区别
  15. 计算机报刊杂志推荐,计算机优秀期刊推荐 | Journal of Cloud Computing
  16. redhat Enterprise Linux Server release 7.2(Maipo) 安装redis-stat
  17. 南航大二学生两年手搓火箭成功发射,全靠业余时间上网自学,稚晖君点赞
  18. 阿里的Java 开发,拿那么高工资,每天都在干啥?
  19. chrome94+版本出现的跨域问题及解决方案
  20. 你见过这么细的图书管理系统吗?

热门文章

  1. 神经元模型简单制作方法,神经元的简单模型图解
  2. 计算机视觉三大会议--ICCV、CVPR、ECCV简要介绍
  3. Elasticsearch 警惕使用 wildcard 检索!然后呢?
  4. 验证多个手机号、固定电话,电话之间用英文逗号隔开
  5. 互联网电商大数据环境 ——大数飓数据分析实践培训精华笔记(八)——电商核心业务知识之订单商品模块三
  6. LeetCode-强盗团伙
  7. 解决系统在大数据情况下如何导出文件(附代码)
  8. android手机连接电脑时直接截屏到电脑
  9. FreeBSD安装samba(转)
  10. 词根、词缀笔记(三)