2_1 AdpterMode.cpp 适配器模式
生活随笔
收集整理的這篇文章主要介紹了
2_1 AdpterMode.cpp 适配器模式
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
// 定義:將一個(gè)類的接口轉(zhuǎn)換成客戶端需要的另一個(gè)接口,使得原本
// 由于接口不兼容而不能一起工作的那些類可以一起工作
//
// 模式舉例:中國電器和電壓普遍都是220V,日本則是110V,中國
// 電器拿到日本月需要一個(gè)特殊的適配器
//
// 模式特點(diǎn):該模式有兩種寫法,類適配器和對象適配器,類適配器
// 是同時(shí)繼承原生類和適配類,重寫原生類的接口,間接
// 調(diào)用適配類接口;對象適配器則是繼承原生類,內(nèi)含適配
// 類。推薦使用第二種方式(合成復(fù)用原則)
//
//#include<iostream>
using namespace std;class Target
{
public:void request(){cout <<"target ariginal request"<<endl;}
};class Adaptee
{
public:void specialRequest(){cout <<"adapter special request"<<endl;}
};/類適配器
class ClassAdapter : public Target, public Adaptee
{
public://重寫request函數(shù)void request(){//做一些輔助的運(yùn)算//然后調(diào)用適配器的接口Adaptee::specialRequest();}
};/對象適配器//
class ObjectAdapter : public Target
{
public:ObjectAdapter(Adaptee * adaptee):m_adaptee(adaptee){}void request(){//做一些輔助的運(yùn)算//然后調(diào)用適配器的接口m_adaptee->specialRequest();}private:Adaptee * m_adaptee;
};int main()
{ClassAdapter * pClassAdapter = new ClassAdapter();pClassAdapter->request();ObjectAdapter * pObjectAdapter = new ObjectAdapter(new Adaptee);pObjectAdapter->request();return 0;
}
?
總結(jié)
以上是生活随笔為你收集整理的2_1 AdpterMode.cpp 适配器模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1_5 PrototypeMode 原型
- 下一篇: COM编程概述