Riordon

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::

引言: 面向对象编程都提倡重用性,有很多老的旧项目要重用到新的项目上来,老的项目有很多地方适合,然而接口不符...

Adapt模式(适配器模式): 将一个类的接口转换成客户希望的另外一个接口。Adapt 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

实例:

 

View Code
 1 class CAdaptee
 2 {
 3 public:
 4     void SpecificRequest()
 5     {
 6         cout<<"This is a special request."<<endl;
 7     }
 8 };
 9 
10 class CITarget
11 {
12 public:
13     virtual void Request()
14     {
15         cout<<"This is a common request."<<endl;
16     }
17 };
18 
19 class CAdapter : public CITarget
20 {
21 public:
22     CAdapter(CAdaptee *pAdaptee)
23     {
24         m_pAdaptee = pAdaptee;
25     }
26 public:
27     void Request()
28     {
29         m_pAdaptee->SpecificRequest();
30     }
31 
32     ~CAdapter()
33     {
34         delete m_pAdaptee;
35     }
36 private:
37     CAdaptee *m_pAdaptee;
38 };
39 
40 int main(int argc, char* argv[])
41 {
42     CITarget *pITaget = new CAdapter(new CAdaptee);
43     pITaget->Request();
44     
45     delete pITaget;
46 
47     return 0;
48 }

 

小结: 设计模式无非是为解决类与类之间的关系,而类之间的关系无非是通过继承、包含或创建指针( 引用)来实现某些功能。而适配器模式正好属于第三者嘛。

 

posted on 2013-04-30 00:18  Riordon  阅读(283)  评论(0)    收藏  举报