中介者模式、代理模式和外观模式的Pk
在学习设计模式的时候,发现这三个模式在一定程度上很是相似。所以总结一下,加以区分。
(一)中介者模式。
所谓中介,在我们生活中很是常见,我们买房子可以有中介公司,找兼职也可以有中介公司。以买房子为例。中介者把所有的买房人、卖房人的需求和特点都结合到一起,把适合的房子提供给合适的人。
首先我们要理解中介者模式的定义:用一个中介者对象来封装一系列对象的交互。中介者使得各对象不需要显式地相互引用,从而解耦合,独立改变他们之间的交互。
中介者模式的示意图:
(二)代理模式
我们的身边肯定不乏有什么服装代理、手机代理等等。我们买衣服也不是直接到服装厂去,而是到商场去。代理模式可以这样理解。服装厂把买衣服的职责托付给商场,商场代替服装厂卖衣服,商场直接与客户交互,而非服装厂。
代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。
代理模式的示意图:
(三)外观模式。
外观模式其实特别容易理解。比如我们去饭店吃饭,我们不用管饭菜是如何做的,即不用与做饭材料交互,只需与饭店的服务员交互即可,我们不用管服务员是如何上菜的,上菜就好。
外观模式的定义:为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。
外观模式的示意图:
外观模式PK中介者模式:
1.外观模式是结构型模式,中介者模式是行为型模式。
2.外观模式是对子系统提供统一的接口,中介者模式是用一个中介对象来封装一系列同事对象的交互行为。
3.外观模式协议是单向,中介者模式协议是双向。
4.外观模式所有的请求处理都委托给子系统完成,而中介者模式则由中心协调同事类和中心本身共同完成业务。
外观模式PK代理模式:
1.代理模式中的代理角色和真实角色都继承于同一类。而外观模式是多个类的集合。
2.代理角色与真实角色接口相同,功能一致,代理角色实现的是真实角色的功能。外观者模式的子系统功能不同,根据用户不同需要与外观类统一配置。
代理模式PK中介者模式:
1.代理模式是一对一,一个代理只能代表一个对象。中介者模式则是多对多,中介者的功能多样,客户也可以多个。
2.只能代理一方。如果PB是A的代理,那么C可以通过PB访问A,但是A不能通过PB访问B。对于中介者模式而言,A可以通过中介访问B,B也可以通过中介访问A。
认识还是很浅的,不当之处,还望各位指教!
中介者模式、代理模式和外观模式的Pk相关推荐
- 带你认识4种设计模式:代理模式、装饰模式、外观模式和享元模式
摘要:本文我们主要介绍结构型模式中的代理模式.装饰模式.外观模式和享元模式. 本文分享自华为云社区<快来,这里有23种设计模式的Go语言实现(三)>,原文作者:元闰子 . 设计模式(Des ...
- java23中设计模式(1)-facade(门面,外观)模式
java23中设计模式(1)-facade(门面,外观)模式 写在前面 学习java以来不断听到各种设计模式,各种框架也大量使用模式 面试的时候曾经也被问过关于设计模式的问题,但是一直没有 系统的了解 ...
- 代理模式vs适配器模式vs外观模式
一.定义 代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问. 适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口,使得原本接口不兼容而不能一起工作的那些类可以 ...
- 用最简单的例子说明设计模式(一)之单例模式、工厂模式、装饰模式、外观模式...
设计模式 所谓设计模式,就是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案).使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.设计模式使人们可以更加简单 ...
- 结构型模式(五)门面模式(Facade Pattern 外观模式)
一.模式定义 门面模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统 ...
- JavaScript设计模式(三):结构型设计模式-外观模式、适配器模式、代理模式、装饰者模式、桥接模式、组合模式、享元模式
JavaScript设计模式 - 结构型设计模式 套餐服务-外观模式 外观模式(Facade) 水管弯弯-适配器模式 适配器模式(Adapter) 适配异类框架 参数适配 牛郎织女-代理模式 代理模式 ...
- 图解Java设计模式学习笔记——结构型模式(适配器模式、桥接模式、装饰者模式、组合模式、外观模式、享元模式、代理模式)
一.适配器模式(类适配器.对象适配器.接口适配器) 1.现实生活中的例子 泰国插座用的是两孔的(欧标),可以买个多功能转换插头(适配器),这样就可以使用了国内的电器了. 2.基本介绍 适配器模式(Ad ...
- 外观模式和代理模式的联系和区别_java23种设计模式-结构型模式之外观模式
外观模式(Facade) 外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中,而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合 ...
- 【白话设计模式二】外观模式(Facade)
为什么80%的码农都做不了架构师?>>> #0 系列目录# 白话设计模式 工厂模式 单例模式 [白话设计模式一]简单工厂模式(Simple Factory) [白话设计模式二] ...
最新文章
- 计算机连上网没网络连接,电脑显示本地网络连接但是宽带没连上怎么办? 爱问知识人...
- 如何实现 集群化/Session 复制-doc(cluster-howto.html)
- 分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境(服务器端及客户端)(转)...
- 如何使用验证控件对DropDownList进行验证
- java怎么释放分配的内存,linux 内存的分配和释放,linux分配释放
- android service莫名启动问题
- C语言课后习题(16)
- PLC编程之ST语言
- 周杰伦 jay《青花瓷》mp3 下载/试听/MV/在线播放
- 2019年SpringBoot视频教程【全网免费】每周更新
- 内核编译支持bonding模块
- git不能push文件
- 护眼灯有用吗?双十二买什么样的护眼灯真的有效果
- 简述created和mounted的区别
- 计算机报刊杂志推荐,计算机优秀期刊推荐 | Journal of Cloud Computing
- redhat Enterprise Linux Server release 7.2(Maipo) 安装redis-stat
- 南航大二学生两年手搓火箭成功发射,全靠业余时间上网自学,稚晖君点赞
- 阿里的Java 开发,拿那么高工资,每天都在干啥?
- chrome94+版本出现的跨域问题及解决方案
- 你见过这么细的图书管理系统吗?