深入解析设计模式中的适配器模式在C++中的运用

2020-01-06 14:48:56于丽
易采站长站为您分析设计模式中的适配器模式在C++中的运用,通常适配器模式可以细分为类适配器和对象适配器两种情况,需要的朋友可以参考下  

适配器模式属于结构型的设计模式,它是结构型设计模式之首(用的最多的结构型设计模式)。
适配器设计模式也并不复杂,适配器它是主要作用是将一个类的接口转换成客户希望的另外一个接口这样使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式有两种:1.类的适配器 2.对象适配器,对象适配器更多一些。

示例:比如你在网上买了一个手机,但是买家给你发回来了一个3接头的充电器,但是恰好你又没有3接头的插槽,只有2个接口的插槽,于是你很直然地便会想到去找你个3接口转两接口的转换器。简单的分析下这个转换器便是我们这里的适配器Adapter。三相插头便是我们要适配的Adaptee,两相插类适配器-----在我看来C++的类适配器的用多重继承实现,并提供适配后的接口。

设计模式,适配器模式,C++

这是你的三相插头


class ThreePhaseOutlet 
{ 
public: 
  void doThreePhasePlugin() 
  { 
    cout<<"三相插头强势插入!"<<endl; 
  } 
}; 

这是你想要的两相插头


class TwoPhaseOutlet  
{ 
public: 
  virtual void doPlugin() = 0; 
}; 

 
然后你将需要找到一个转接头,将三相插头转换为“两相插头”


class OutletConvertor: public TwoPhaseOutlet,public ThreePhaseOutlet 
{ 
public: 
  void doPlugin() 
  { 
    doConvertor(); 
    doThreePhasePlugin(); 
  }   
    void doConvertor() 
  { 
    cout<<"三相插头转为两厢插头!"<<endl; 
  } 
}; 

现在你可以强势插入两相的插口了。


TwoPhaseOutlet* outlet = new OutletConvertor(); 
outlet->doPlugin(); 

对象适配器模式-----对象适配器是将需要适配的对象进行包装然后提供适配后的接口。

设计模式,适配器模式,C++