文档章节

外观模式-设计模式

douglaswei
 douglaswei
发布于 2014/06/22 18:04
字数 428
阅读 35
收藏 0

外观模式-设计模式

外观模式是将client端要调用的多个接口封装到一个Face类中,Face类封装了内部系统且作为该系统对外提供功能的接口,为client提供一个一致的界面,简化client调用系统接口步骤,使得系统易于使用,减低复杂度,控制bug数,节省学习成本。Face类通过组合现有子系统的接口方法完成一个对外提供功能点,不是通过新增方法。外观模式为client端调用系统功能提供了一个缺省的功能实现,如果Face类提供的功能不能完成需求,这个时候就需要client自己来组合子系统方法完成功能点。外观模式是对现有功能的组合,不新增新方法,避免理解混淆,Face功能定义不清晰,遵循单一职责原则。

Client --> Face-->(Ainterface-->AinterfaceImpl,Binterface-->BinterfaceImpl)

一般在client要通过组合多个子系统功能来完成一个功能点时使用,如果多处调用,效果更佳。例如:代码生成器-生成model+business+dao,资源加载和处理流程。低耦合的好处是对Face内部已经子系统内部的修改不会影响到client端的调用。

外观模式:是从架构的层次观察整个系统,封装子系统方法创建高层接口,使得系统易于使用,世界变得清新和美好。

PS: 最好的技术和理论是学习成本低的技术和理论,是大家都学会的技术和都能理解的理论。

© 著作权归作者所有

共有 人打赏支持
douglaswei
粉丝 8
博文 59
码字总数 39760
作品 0
珠海
架构师
私信 提问
设计模式学习笔记十四:适配器模式、桥接模式与外观模式

1.适配器模式与桥接模式的区别和联系 适配器模式和桥接模式都是间接引用对象,因此可以使系统更灵活,在实现上都涉及从自身以外的一个接口向被引用的对象发出请求。 两种模式的区别在于使用场...

长平狐
2013/06/17
89
0
设计模式什么的哪有那么神秘 ----第一集 一些吐槽和重构的韵味

一日面试, ...... Hr:你对设计模式熟悉吗? 应聘者A:我了解常用的设计模式,平时经常使用工厂模式和单例模式.而且我也看过一些讲23种设计模式的书.其他不常用的模式用的不是太熟. Hr:你用过外观...

架构梦想
2013/08/04
0
7
设计模式Java Design Pattern-工厂方法模式FactoryMethod

我的博客 一、 设计模式的分类 大体可以分为三类: 创建型模式(5个) 单例模式、原型模式、工厂方法模式、抽象工厂模式、建造者模式 结构性模式(7个) 适配器模式、装饰器模式、代理模式、...

勇敢写信
03/22
0
0
小菜学设计模式——设计模式总结之结构型

1、设计模式总结 设计模式总共23个,但是常用的不到10个,下面就把这23个设计模式进行整理归类,具体如下: 1)创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型...

learn_more
2015/07/06
0
0
设计模式 2014-12-19

book: 阎宏《JAVA与模式》 架构设计栏目 http://blog.csdn.net/enterprise/column.html 概要: http://bbs.csdn.net/forums/Embeddeddriver 23种设计模式分别是: 1.单例模式 2.工厂方法模式...

jayronwang
2014/12/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ConcurrentHashMap源码解析

初始化 先看看ConcurrentHashMap中几个重要的属性: // 初始化容量大小static final int DEFAULT_INITIAL_CAPACITY = 16;//默认负载因子static final float DEFAULT_LOAD_FACTOR = 0.75f...

grace_233
8分钟前
0
0
java对象的浅拷贝和深拷贝

浅拷贝 java的数据类型有基本数据类型(如:int、long等)和引用数据类型。例如:对象1中有属性a(基本数据类型)和属性b(引用数据类型),在进行浅拷贝到对象2时,属性a复制属性的值给对象...

yangyangyyyy
9分钟前
0
0
SQLServer AlwaysOn在阿里云的前世今生

缘起 早在2015年的时候,随着阿里云业务突飞猛进的发展,SQLServer业务也积累了大批忠实客户,其中一些体量较大的客户在类似大促的业务高峰时RDS的单机规格(规格是按照 内存CPUIOPS 一定比例...

阿里云云栖社区
10分钟前
0
0
ubuntu16.04 LNMP搭建 php7.1

sudo apt-get update sudo apt-get install mysql-server mysql-client sudo apt-add-repository ppa:ondrej/php sudo apt-get update sudo apt-get install php7.1 php7.1-fpm php7.1-cgi p......

一千零一夜个为什么
16分钟前
0
0
阿里云高级技术专家带你全面了解云主机性能评测

钱超,花名西邪,阿里云高级技术专家,超12年老阿里,是云主机性能领域的知名专家。 在目前的云计算测评领域,很多性能测评存在营销的包装,容易引起误导:比如用瞬时性能引导读者得出结论,...

阿里云官方博客
23分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部