一、定义

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

适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口,使得原本接口不兼容而不能一起工作的那些类可以一起工作。

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

二、理解

代理模式和适配器模式应该说很相像,但是他们的区别也很明显,代理模式和被代理者的接口是同一个,只是使用中客户访问不到被代理者,所以利用代理间接的访问,而适配器模式,是因为接口不同,为了让用户使用到统一的接口,把原先的对象通过适配器让用户统一的使用,大多数运用在代码维护的后期,或者借用第三方库的情况下 ,而外观模式,是大家经常无意中使用的,就是把错综复杂的子系统关系封装起来,然后提供一个简单的接口给客户使用,就类似于一个转接口,可以想象成一个漏斗,中间细的那一段,越细耦合度越低,外观模式就是为了降低耦合度。

三、类图

代理模式

适配器模式

外观模式

四、Code

代理模式,代理者保存一个被代理的一个对象;适配器模式,保存了一个被适配的对象;而外观模式,就保存了各个子系统对象,然后根据实际逻辑组合。

转载:http://www.cnblogs.com/qlee/archive/2011/05/24/2055728.html

转载于:https://www.cnblogs.com/jinxiang1224/p/8468207.html

代理模式vs适配器模式vs外观模式相关推荐

  1. 《Head First设计模式》第七章-适配器模式、外观模式

    适配器模式 适配器模式是什么,你一定不难理解,因为现实中到处都是.比如说: 如果你需要在欧洲国家使用美国制造的笔记本电脑,你可能需要使用一个交流电的适配器-- 当你不想改变现有的代码,解决接口不适配问 ...

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

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

  3. 7.适配器模式和外观模式

    1.适配器模式引入 1.1 现实世界的适配器 真实世界的适配器.比如,如果需要在欧洲国家使用美国制造的笔记本电脑,那就可能需要一个交流电的适配器. 上图中适配器的作用:位于美式插头和欧式插座的中间,他 ...

  4. 适配器模式和外观模式(head first设计模式——6)

    为什么要把适配器模式和外观模式放在同一篇文章中,主要是其相对前面的几个模式来讲会简单些并且具有相似之处.下面就分别通过例子来看理解一下两种模式,然后再进行对其进行比较. 一.适配器模式 1.1适配器模 ...

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

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

  6. Java设计模式(四):结构性模式(适配器模式、桥接模式、装饰模式、组合模式、外观模式、亨元模式、代理模式)

    目录 一· 适配器设计模式 1.1 现实生活中的适配器例子 1.2 基本介绍 1.3 工作原理 1.4 类适配器模式 1.5 对象适配器模式 1.6 接口适配器模式 1.7 适配器模式在 Spring ...

  7. 适配器模式和外观模式

    适配器模式(Adapter pattern): 将一个类的接口,转换成客户期望的另一个接口.适配器让原本不兼容的类可以合作无间 对象适配器(对象组合的方式) 适配器实现了目标接口,并持有被适配者的实例 ...

  8. Java 设计模式(适配器模式与外观模式)

    适配器模式 包装某些对象,让它们的接口看起来不像自己而像是别的东西. 将一个类的接口转换成客户期望的另一个接口.适配器让原本接口不兼容的类可以合作无间. 比如现有一个软件系统,有一些接口,但是与所需的 ...

  9. 设计模式之结构型模式:适配器模式、桥接模式、组合模式、装饰器模式、代理模式、

    文章目录 什么是结构型模式 适配模式 适配器的数据结构 适配器的实现 缺省适配器 适配器优缺点 适配器模式的使用环境 桥接模式 桥接模式数据结构 桥接模式的实现 桥接模式和适配器模式的联用 桥接模式的 ...

最新文章

  1. 2022-2028年现代农业背景下中国家庭农场深度调研及投资前景预测报告
  2. python 使用 struct 把数据变成字节流
  3. HDU1533 Going Home(最小费用最大流 spfa模版)
  4. 计算机安全模式无法进入安全模式,如何解决无法在Windows 10中进入安全模式的问题...
  5. Idea中内置Translation插件报“翻译错误”,解决方式!!!
  6. postGIS相关数据库参数
  7. nginx的状态是failed的解决方案
  8. rabbitmq如何保证消息不丢失_RabbitMQ的去重与防止消息的丢失
  9. php 系统模版_原生 PHP 模板系统:Plates
  10. 经验 | 上交机械本硕转计算机视觉岗位面经
  11. 注解的原理又是怎么一回事
  12. c++ map底层_Redis详解(四)------ redis的底层数据结构
  13. 访问tomcat7 java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl
  14. 均值聚类散点图怎么画_用Excel制作一个漂亮的分类散点图
  15. 论文阅读笔记(十二)——U-Net: Convolutional Networks for Biomedical Image Segmentation
  16. 文本框中呈现文字,用鼠标点击一下消失
  17. 台式电脑计算机里的共享网络,如何实现笔记本和台式机两台电脑共享上网
  18. dfuse for EOSIO v0.1.0-beta4 版本更新说明
  19. 1.18 Spreadsheet
  20. 计算机网络_实验16_网络故障导致环路

热门文章

  1. 学web前端有什么计划?
  2. 如何学习-我是这样学JS理论![不看后悔篇]
  3. 表贴电阻尺寸与什么有关_0欧电阻存在的意义?看了就懂了
  4. stm32c语言long型数据多少位,stm32 C语言的数据类型说明
  5. kafka 事务_Kafka的有且仅有一次语义与事务消息
  6. 自动生成的sitemap.html乱码,任意网站添加生成sitemap地图
  7. ppt复制切片器_【PPT】高端人物活动介绍页PPT创意设计制作
  8. MyBatis当多个请求参数时处理方式
  9. ubuntu16.04下在TensorFlow中实现快速风格迁移
  10. argparse、glob、findall