设计模式之适配器模式
适配器模式,将一个类的借口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式主要解决的是数据和行为都正确,但接口不符合的情况。该模式很好理解,其UML图如下:
示例代码如下:
1 // AdapterModel.h文件
2 #pragma once
3 #include <iostream>
4 class Target
5 {
6 public:
7 virtual void request()
8 {
9 std::cout << "普通的请求" << std::endl;
10 }
11 };
12
13 class Adatee
14 {
15 public:
16 void specificalRequest()
17 {
18 std::cout << "特殊请求" << std::endl;
19 }
20 };
21
22 class Adapter : public Target
23 {
24 private:
25 Adatee * m_p;
26 public:
27 Adapter() : m_p(nullptr)
28 {
29 m_p = new Adatee;
30 }
31 ~Adapter()
32 {
33 if (nullptr != m_p)
34 delete m_p;
35 }
36 virtual void request()
37 {
38 Target::request();
39 m_p->specificalRequest();
40 }
41 };
其测试代码如下:
1 #include <iostream>
2 #include "AdapterModel.h"
3
4 int main()
5 {
6 using namespace std;
7 // 适配器模式
8 Target * p = new Adapter();
9 p->request();
10
11 getchar();
12 return 0;
13 }
测试结果如下图: