代理模式

xiaoxiao2021-02-28  32

如图,代理类与委托类均为客户类的实现,代理类可将委托类的功能做扩展,见代码: //a 类包含b 类, a, b均实现协议类, 接口统一架构不变, 功能扩展 //本质,使用兄弟类代码,继承虚函数重写用不了 #include <iostream> using namespace std; class Fruit { public: virtual void getFruit() = 0; protected: private: }; class Banana : public Fruit //实现关系 { public: virtual void getFruit() { cout << "我是香蕉...." << endl; } protected: private: }; class south_Banana : public Fruit //实现关系 { public: virtual void getFruit() { myFruit = new Banana(); myFruit->getFruit(); cout << "但我是南方香蕉...." << endl; } virtual ~south_Banana() { if (myFruit != NULL) { delete myFruit; myFruit = NULL; } } protected: private: Fruit* myFruit; }; void main() { Fruit* ptr = new south_Banana(); ptr->getFruit(); delete ptr; ptr = new Banana(); ptr->getFruit(); delete ptr; return; }
转载请注明原文地址: https://www.6miu.com/read-2620364.html

最新回复(0)