代理模式

来源:互联网 发布:手机量尺寸软件 编辑:程序博客网 时间:2024/06/07 11:21
#include <iostream>#include <string>using namespace std;class Operation{public:virtual void operation() = 0;};class Work{public:Work() {}Work(string strName) : m_strName(strName) {}void setWorkName(string strName) { m_strName = strName; }string getWorkName() { return m_strName; }private:string m_strName;};class Lazy : public Operation{public:Lazy() {}Lazy(Work* pobjWork) : m_pobjWork(pobjWork) {}virtual void operation() override{if (m_pobjWork){cout << "do not work " << m_pobjWork->getWorkName() << endl;}}private:Work* m_pobjWork = nullptr;};class Industrious : public Operation{public:Industrious() {}Industrious(Work* pobjWork) { m_pobjLazy = new Lazy(pobjWork); }virtual void operation() override{if (m_pobjLazy){m_pobjLazy->operation();}}private:Lazy* m_pobjLazy = nullptr;};int main(){Work* pobjWork = new Work("knock");Industrious* pobjIndustrious = new Industrious(pobjWork);pobjIndustrious->operation();return 0;}
总结:可以控制其他类进行操作
0 0