设计模式之适配器模式

适配器模式

定义

将一个类的接口,转换成客户期望的另一个接口。适配器让原本不兼容的类可以合作无间。

类图

Cahuid.jpg

代码示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
class Duck {
public:
virtual void quack() = 0;
virtual void fly() = 0;
};

class MallardDuck :public Duck {
public:
void quack() {
cout << "MallardDuck quack!" << endl;
}

void fly() {
cout << "MallardDuck fly!" << endl;
}
};

class Turkey {
public:
void gobble(){
cout << "Turkey gobble!" << endl;
}

void flyShort() {
cout << "Turkey fly!" << endl;
}
};

class TurkeyAdapter :public Duck {
public:
void quack() {
turkey->gobble();
}

void fly() {
turkey->flyShort();
}

private:
Turkey* turkey;
};

理解

适配器持有一个被适配者,适配器的接口和适配目标的接口是一样的,当调用适配目标的接口时,适配器转而调用被适配者的对应方法。也就是说适配器拥有一个被适配对象,就可以为所欲为!

分享到