先上UML图

代理模式:

适配器模式:

门面模式(外观模式):

打了例子……呃……举个比方

代理模式: 水浒街,西门庆看上潘金莲,想和她嘿咻嘿咻,但是自己有不能去找潘金莲去说,于是他找到了金牌代理人王婆,王婆就去找潘金莲,经过一番商谈,潘金莲终于答应了西门庆的请求。

适配器模式: 水浒街,西门庆看上潘金莲,想和她嘿咻嘿咻,于是就去潘金莲家,但是潘金莲不在,于是就给王婆穿上潘金莲的衣服,带上面具,假扮成潘金莲,和西门庆嘿咻嘿咻了……(有点恶心啊)

门面模式(外观模式): 水浒街,西门庆想去怡红院嘿咻嘿咻,于是他选好了姑娘,调好了门房,嘿咻之后交完了钱,由退了房。现在怡红院推出门面套餐,只要选门面套餐,就自动选好了最好的房子,最好的姑娘,连房租都可以自动记载账上,西门庆只要嘿咻就可以了。

优缺点

代理模式:优点是协调调用与被调用,实现部分解耦,代理模式能保护对真实对象的访问,代理远程机器可以使得远程机器能无阻碍协调地处理客服端请求。缺点是增加代理层调用流程复杂,可能出错,同时速度可能变慢。 用例子说明是:优点将西门庆与潘金莲隔离开来,保护了潘金莲的名声,同时使西门庆与潘金莲交流顺畅。缺点是多了王婆这一层,传达交流可能会出错,同时要肯定会延迟两人的交流。

适配器模式:优点是将目标类与适配者类解耦,增加了类的透明性,灵活性扩展性好。缺点是在Java等语言中,不支持多继承,所以类适配器只能适配一个,而对象适配器想置换适配类的方法就不容易。 用例子来说:优点是西门庆知道那是王婆假扮的,而且他能随时让王婆假扮成其他人,灵活性好。缺点是在Java中,类适配器中王婆只能假扮一个姑娘,而对象适配器中王婆假扮的姑娘取乐方式只有嘿咻嘿咻。

门面模式(外观模式):优点是松散耦合,被调模块更容易扩展和维护。简单易用,节省了调用者的处理流程,更好的划分了访问层次,而且用户不知道内部实现,还提高了安全性。缺点是不符合开闭原则,如果要新增功能,继承复用都没有用,只能修改门面模块代码。 用例子来说:优点是西门庆叫姑娘时简单容易,而且选姑娘、选房子、记账可以统筹规划,专门找人负责,各人之间互不相关,西门庆也不知道门面套餐内部机制,怡红院也挣钱也更隐蔽。缺点是有新的流程,都必须修改门面套餐。

适用范围

代理模式:可以用于远程访问,虚拟代理,以及权限控制,智过能引用代理等。

适配器模式:当系统的数据与行为都正确,但是接口不符合是,可以通适配达到协调

门面模式:开发时通过门面模式可以隐藏复杂的实现步骤,维护旧系统的时候,可以封装遗留代码,提供清晰借口。

最新文章

  1. 基于sentinel 的redis集群环境搭建
  2. java Jsoup 抓取页面数据
  3. hadoop数据容易出现错误的地方
  4. java使用json抛出org.apache.commons.lang.exception.NestableRuntimeException解决方案
  5. 一、Autofac入门
  6. Netty 简介
  7. vue中用ajax上传文件
  8. Flask 上下文管理
  9. 如何从零开始在github上新建项目
  10. 一致性hash算法及java实现
  11. 版本控制工具Git工具快速入门-Linux篇
  12. hadoop参数传递
  13. Json和XML解析
  14. PHP官方文档之————secure.php.net.while
  15. 面试-存储过程与Insert的性能比较
  16. javascript打开新窗体
  17. Git----创建远程分支,并将文件上传到创建的远程分支上
  18. load data导入数据之csv的用法
  19. nginx静态资源配置
  20. android中AudioRecord使用

热门文章

  1. 淘宝自己的前端框架KISSY(类似jquery) - 简易指南
  2. c#3位一分(money)
  3. Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
  4. 【贪心】 BZOJ 3252:攻略
  5. 解决WIN8 磁盘100 活动占用100% win8硬盘一直响
  6. uva 10105
  7. Python 异常结构
  8. POJ3697+BFS+hash存边
  9. hdu 1847 Good Luck in CET-4 Everybody! 博弈论
  10. Mybatis代码生成器 xml配置文件 连接SQL SERVER 2005