适配器模式

此模式有三个角色:

目标(Target)角色:这是客户所期待。

源(Adaptee)角色:需要适配的类。

适配器(Adapter)角色:把源接口转换成目标接口。----使用目标的接口,此接口中使用了源的接口哟。

 

其分为类模式对象模式

类模式:

class  Target

{

void I_want_to_do_with_him_but_diffrent();

}

class Adaptee

{

void He_want_to_do();

}

class Adapter:public Target,public Adaptee

{

void I_want_to_do_with_him_but_diffrent()

{

this->He_want_to_do();

}

}

int main()

{

Target* mydo = new Adapter();

mydo->I_want_to_do_with_him_but_diffrent();

}

对象模式:

o_adapter.bmp

 

他与类不同的是:适配器只是继承目标,但他包含了一个源的对象(new Adaptee),用此对象去调用该对象的接口哈。如上图。

 

1.Adapter模式主要应用于希望复用一些现存的类,但是接口又与复用环境要求不一致的情况,在遗留代码复用、类库迁移等方面非常有用

2.Adapter模式有对象适配器和类适配器两种形式的实现结构,但是类适配器采用“多继承”的实现方式,带来了不良的高耦合,所以一般不推荐使用。对象适配器采用“对象组合”的方式,更符合松耦合精神。

3Adapter模式的实现可以非常的灵活,不必拘泥于GOF23中定义的两种结构。例如,完全可以将Adapter模式中的现存对象作为新的接口方法参数,来达到适配的目的。

4Adapter模式本身要求我们尽可能地使用“面向接口的编程”风格,这样才能在后期很方便的适配

posted @ 2013-07-04 21:50  风啊  阅读(79)  评论(0)    收藏  举报