[架构设计]设计模式C++实现--适配器模式 下载本文

内容发布更新时间 : 2024/11/17 18:56:12星期一 下面是文章的全部内容请认真阅读。

模式定义:

适配器模式将一个类的接口,转换成客户期望的另一个接口。适

配器让原本接口不兼容的类可以合作无间。

适配器可以分为类适配器和对象适配器。

类适配器使用多重继承对一个接口与另一个接口进行匹配。

对象适配器依赖于对象组合。

客户使用适配器的过程:

1. 客户通过目标接口调用适配器的方法对适配器发出请求。 2.

适配器使用被适配者接口把请求转换成被施培者的一个或多个调

用接口

3. 客户接收到调用的结果,但并未察觉这一切是适配器在起转换作

用。

模式结构:

类适配器

对象适配器

举例:

现在假设你缺少鸭子对象(叫声为 Quack, 飞行输出 ”I ’m flying)!,想”用一些火鸡对象(叫声为 ”Gobble gobble ”飞行输出 ”I ’m flying a short distance! )”来冒充。显而易见,因为火鸡的接口 (行为)不同,所以我们不能公然拿来使用。

UML 设计:

编程实现及执行结果:

[cpp]

view plaincopy

1. 2. 3. 4. 5. 6. 7. 8. 9.

#include

using namespace std; // 定义鸭子类 class Duck { public :

virtual virtual

void quack(){}; void fly(){};

10. };

11. // 定义绿头鸭 12. class MallardDuck : 13. { 14. public : 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. };

25. // 定义火鸡 26. class Turkey

} { cout <<

\

<< endl;

void fly() } { cout <<

\<< endl;

void quack()

public

Duck