适配器模式的极简概述

来源:互联网 发布:淘宝网址微信转换 编辑:程序博客网 时间:2024/06/05 14:31

刚简单并认真地看了适配器模式,赶紧把其原理勾勒出来,防止忘光光。

若A的Do无法直接使用C的方法DoC,构件适配器B。注意以下要点:

1.B继承自A,写覆盖函数Do(目的是调用B的方法);

2.B以C的对象c为构造函数的输入;

3.B的Do函数中使c调用DoC;

4.C c = new C;A a = new B(c);a->Do;

此时,执行的是B的Do,从而调用了DoC。给出编译通过的源码

#include "stdafx.h"#include <iostream>#include <string>using namespace std;class A{public:virtual ~A(){};virtual void Do(){cout << "Do By A;" << endl;};};class C{public:void DoC(){cout<<"Do By C;" << endl;}};class B : public A{public:B(C* c_In):c(c_In) {};virtual ~B() {};virtual void Do(){cout << "Transfer By Adapter;" << endl;c->DoC();}private:C* c;};void main(){C *c = new C;A *a = new B(c);a->Do();delete c;delete a;system("pause");}


原创粉丝点击