设计模式之代理模式,C++实现
来源:互联网 发布:编程c 入门教程视频 编辑:程序博客网 时间:2024/05/10 08:16
原创:http://blog.csdn.net/iuhsihsow
这一篇主要参照了《大话设计模式》
//代理模式:为其他对象提供一种代理以控制这个对象的访问
//简而言之就是给对象加一个壳
//1.远程代理
//2.虚拟代理
//3.安全代理
//4.智能指引
//问1:代理模式和聚合关系有什么区别,感觉适配器模式也能解决类似问题?
//答1:强调了对象的行为
截下来的图,自己用visio画的太丑了
#include "stdafx.h" #include <windows.h> #include <iostream> using namespace std; //大话设计模式中的例子 //A君让代理人B君给C小姐送礼物 class IGiveGift { public: IGiveGift(){;} virtual ~IGiveGift(){;} virtual void GiveGift() = 0; }; class PersonA : public IGiveGift { public: PersonA(const std::string & strGirlName) { m_strGirlName = strGirlName; } void GiveGift() { std::cout<<m_strGirlName.c_str()<<","<<"送你的礼物!"<<endl; } private: std::string m_strGirlName; }; class ProxyB : public IGiveGift { public: void SetClientPerson(PersonA *pA) { m_pPersonA = pA; } void GiveGift() { m_pPersonA->GiveGift(); } private: PersonA *m_pPersonA; }; int _tmain(int argc, _TCHAR* argv[]) { //A君出现了,怀着对心上人的思念 PersonA *pA = new PersonA("C小姐"); //A君不好意思送礼物,于是找到了代理B君 ProxyB *pB = new ProxyB(); pB->SetClientPerson(pA); //B君送礼来了 pB->GiveGift(); //落幕 if (pA) { delete pA; pA = NULL; } if (pB) { delete pB; pB = NULL; } return 0; }
- 设计模式之代理模式(C++)
- 设计模式之代理模式,C++实现
- scala实现设计模式之代理模式
- C语言实现《设计模式之禅》之代理模式——普通代理
- 设计模式之动态代理 jdk实现
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之-代理模式
- 设计模式之 代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 设计模式之代理模式
- 运用 Ext JS 4 的 MVC 架构
- 打造户外找房好帮手,几款APP究竟谁能更胜一筹?
- CDC,CClientDC,CPaintDC,CWindowDC 比较区别
- 虚函数机制
- java.lang.NumberFormatException: multiple points的解决方案
- 设计模式之代理模式,C++实现
- 图形问答
- Oracle开发之触发器调用存储过程
- Linux 查看CPU信息、机器型号等硬件信息
- AnyChat与IP组播技术
- Android实现开机自启动Service
- Unity 3D Physics – Rigidbody 刚体
- SQL Server 索引中include的魅力(具有包含性列的索引)
- OGNL表达式struts2标签“%,#,$”