AS3笔记(11),适配器模式(Adapter Pattern)
作者:frank 日期:2008-02-12
注:本文为frank的学习笔记,转载请注明原文链接
更多笔记请参看:http://www.2solo.cn/log/article.asp?id=87
适配器模式属于Gof(Gang of four)在《设计模式》中提到的23种设计模式之一.
Adapter模式的概念
在大规模的系统开发过程中,我们常常碰到诸如以下这些情况:
我们需要实现某些功能,这些功能可以利用已有的一个或多个还不太成熟的组件或类,如果我们自己重新开发这些功能会花费大量时间;所以很多情况下会选择先暂时使用组件,以后再考虑随时替换。但这样一来,会带来一个问题,随着组件库的替换,可能需要对引用该组件的源代码进行大面积的修改,因此也极可能引入新的问题等等。如何最大限度的降低修改面呢?
Adapter模式就是针对这种类似需求而提出来的。
Adapter模式通过定义一个新的接口(对要实现的功能加以抽象),和一个实现该接口的Adapter(适配器)类来透明地调用外部组件。这样替换外部组件或改写类时,最多只要修改几个Adapter类就可以了,其他源代码都不会受到影响。
Gof在《设计模式》中提到了两种Adapter适配器模式,一种叫对象适配器模式,另一种叫类适配器模式。
*对象适配器模式提倡通过复合(Composition)来实现适配器模式
*类适配器模式提倡通过继承(Inheritance)来实现适配器模式
适配器模式中的有以下的四种角色:
目标(target):定义客户端使用的与特定领域相关的接口。
被适配者(adaptee):定义了一个已经存在的接口,这个接口需要匹配。
适配器(adapter):对Adaptee的接口与target的接口进行适配。
客户端(Client):与符合target接口的对象协同。
下面,我通过我的一个例子来解说这几个角色。见以下范例,(范例改编自《OReilly.ActionScript.3.0.Design.Patterns》一书)。
Adaptee.as
| /* 被适配者类 */ package { public class Adaptee { public function requestA():void { trace("Adaptee:requestA()"); } |










