首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

设计方式(7)——适配器模式和外观模式

2012-10-28 
设计模式(7)——适配器模式和外观模式1. 定义??? 假设已有一个软件系统,你希望它能和一个新的厂商类库搭配使

设计模式(7)——适配器模式和外观模式

1. 定义

??? 假设已有一个软件系统,你希望它能和一个新的厂商类库搭配使用,但是这个新厂商所设计出来的接口,不同于旧厂商的接口。如果你不想改变现有的代码,也不能改变厂商的代码,那么你该如何解决这个问题。方法其实很简单,就是写一个类,将新厂商的的接口转成你所期望的接口。如图:

设计方式(7)——适配器模式和外观模式

?

图 适配器模式

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

?

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

2. 类图及描述

设计方式(7)——适配器模式和外观模式

图 适配器模式示意图

设计方式(7)——适配器模式和外观模式

图 外观模式示意图

3. 应用场景及优缺点

适配器模式应该注意的地方:

1)、适配器需要做的工作与目标接口的大小成正比,接口越大,需要做的工作越多。

2)、根据实际需要我们可以让适配器实现好几个接口。一句话,要灵活使用模式。
适配器模式的适用性:

1)、你想使用一个已经存在的类,而它的接口不符合你的需求。

2)、你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。

3)、你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。

?

外观模式的优点

1、对接口进行了简化,方便客户使用。

2、可以实现客户与子系统解耦,易于维护。

外观模式的缺点:

1、多了一个包装类,可能导致复杂度和开发时间的增加,并降低运行时的性能。

外观模式值得注意的地方:

1、外观模式对接口进行了简化,但这并不意味着对子系统进行彻底封装。如果有必要,这些子系统的接口还可以继续暴露给客户,这就是所谓的高级功能(或称为自定义)。

2、外观模式不能新增功能,但他可以将某些功能按次序执行。例如先打开DVD,后播放DVD。

3、子系统与外观不是一对一关系,是多对多关系。一个子系统可以拥有多个外观,一个外观可以调用多个子系统。

4、外观模式与适配器模式的区别不是包装的类的多少,而是意图不一样。适配器模式也可以包装很多类,但他的意图是改变接口,符合客户的期望;外观模式是将接口进行简化,方便使用。

热点排行