代理模式通过包含一个派生类的方法并且添加自己的方法。
代码实现:
#include<iostream>
using namespace std;
class Base
{
public:
virtual void DoingSomething() = 0;
};
class NewPeople :public Base
{
public:
void DoingSomething()
{
cout << "NewPeople" << endl;
}
};
class OldPeople :public Base
{
public:
void DoingSomething()
{
mNewPeople.DoingSomething();
cout << "OldPeople" << endl;
}
private:
NewPeople mNewPeople;
};
int main()
{
Base* base = nullptr;
base = new OldPeople;
base->DoingSomething();
delete base;
return system("pause");
}