[设计模式学习--C++实现]--Adapter模式

Adapter模式分为两种:类模式和对象模式。

类模式代码实现:

 1 //Adapter.h
 2 class Adapter:public  Target ,private  Adaptee 
 3 { 
 4 public: 
 5  Adapter(); 
 6  ~Adapter(); 
 7  void Request(); 
 8 protected: 
 9 private: 
10 }; 
11 #endif //~_ADAPTER_H_  
12 
13 //Adapter.cpp
14 Adapter::Adapter() 
15 { 
16 } 
17 Adapter::~Adapter() 
18 { 
19 } 
20 void Adapter::Request() 
21 { 
22  this->SpecificRequest(); 
23 } 
Adapter


对象模式实现代码:

 1 //Adapter.h
 2 class Adapter:public  Target 
 3 { 
 4 public: 
 5  Adapter(Adaptee* ad e); 
 6  ~Adapter(); 
 7  void Request(); 
 8 protected: 
 9 private: 
10  Adaptee*  _ade ; 
11 }; 
12 #endif //~_ADAPTER_H_   
13 
14 //Adapter.cpp
15 Adapter::Adapter(Adaptee*  ade)  
16 { 
17  this->_ade  =  ad e;  
18 } 
19 Adapter::~Adapter() 
20 { 
21 } 
22 void Adapter::Request() 
23 { 
24  _ade->SpecificRe quest(); 
25 }
Adapter

在类模式中,Adapter通过public继承实现了接口继承和实现继承,既可以对外提供父类中的接口,也可以实现父类中的代码。而private继承Adaptee属于实现继承,因为private是的父类中的所有函数变为private的,所以只能实现继承。

main函数实现代码

 1 //main.cpp 
 2 #include  "Adapter .h" 
 3 #include  <iostream> 
 4 using namespace std; 
 5  
 6 int main( i nt ar gc,char* argv[] )  
 7 { 
 8   Adaptee*   ad e = new Adaptee; 
 9  
10   Ta rget *  adt = n ew  Adapter(ade) ; 
11  
12  adt->Request ();  
13  
14  return 0;  
15 }
Main

代码图片来自《GOF23中设计模式详解》一书。

posted @ 2013-05-26 20:58  mengmee  阅读(139)  评论(0编辑  收藏  举报