23种设计模式C++实例之代理模式
来源:互联网 发布:佛山专业网络推广公司 编辑:程序博客网 时间:2024/05/22 23:37
代理的目的是一般是为了防止直接访问某一个类,提供一种类似授权的机制。
最典型的类中set和get方法实际上就是一种代理。
#include <iostream>using namespace std;/* * 代理模式:为其他对象提供一种代理,并以控制对这个对象的访问 * a类中b类,a类和b类中都实现协议类protocol * */class Shop{public:virtual ~Shop() {}virtual void sell() = 0;};class BookShop: public Shop {public:virtual void sell() {cout << "sell book" << endl;}};class NetShop: public Shop {public:NetShop() {m_shop = new BookShop();}virtual ~NetShop() {if ( m_shop != NULL ) {delete m_shop;m_shop = NULL;} }virtual void sell() {discount();m_shop->sell();}void discount() {cout << "discount" << endl;}private:Shop* m_shop;};int main() {NetShop* netShop = new NetShop;netShop->sell();delete netShop;return 0;}
0 0
- 23种设计模式C++实例之代理模式
- 23种设计模式之代理模式
- 23种设计模式之代理模式
- 23种设计模式之代理模式
- 23种设计模式之代理模式
- 设计模式之代理模式(C++)
- 设计模式---代理模式 实例
- Net设计模式实例之代理模式(Proxy Pattern)
- Net设计模式实例之代理模式(Proxy Pattern)
- 23设计模式之代理模式(Proxy)
- 23设计模式之代理模式(Proxy)
- java_23种设计模式之代理模式
- java23种设计模式之代理模式
- 23种设计模式之代理模式(Proxy)
- c++23种设计模式之代理模式
- 23种设计模式之代理模式2
- 【23种设计模式】之 代理模式(Representative Pattern)
- 23种设计模式之——代理模式
- 黑马程序员---Java基础---双列集合Map(接口)
- oc中new和init的区别
- iOS基础: navigationController.popToViewController的使用
- 前进道路上的收获历程
- Python学习笔记(3):web初步
- 23种设计模式C++实例之代理模式
- Mac新手——文件存放
- Objective-c语言_不可变字典
- SQL * Loader详解
- django1.4 文档
- swift 学习笔记
- VS2008 ODBC方式连接Mysql7.9
- android ScrollView嵌套RecyclerView
- 时间管理&项目管理工具