每日设计模式——代理模式

来源:互联网 发布:商业分析软件 编辑:程序博客网 时间:2024/05/08 08:27

      代理模式,为其他对象提供一种代理以控制对这个对象的访问。一般用在为一个对象在不同的地址空间提供局部代表的远程代理;或者根据需要创建开销很大的对象的虚拟代理,通过其来存放实例化需要很长时间的真实对象;或者控制真实对象访问时的权限的安全代理;或者取代简单指针的智能指引。语出自《大话设计模式》。

      《大话设计模式》里面举得例子是替别人送情书,结果顺便连小姑娘都骗到手。基本上就是说定义一个泡妞接口,让追求者实现这个接口,代理也实现这个接口,只不过代理中的实现方法调用的是追求者的实现方法。就是说被追求的姑娘并不认识要追她的人,但是可以通过代理得到追她的哥们送她的礼物。但是现在有这么干的么?追姑娘不自己追,还让哥们帮着上啊……

      古剑里我还真没想到什么地方具体实施的时候可以用代理模式,估计那些比较大的图像啊,地图什么加载的时候会用到,但估计也像struts其实封装了工厂模式一样,开发的环境估计已经把这个代理模式封装好了,起码DirectX里面那个可以自动生成原始模型的缩小版的工具就这么个意思呗。那个东西叫什么我忘了,明天去查一下,书不在手头啊……其实古剑里的侠义榜就可以算是代理模式,榜单的主人自己没办法办一些事,所以叫我们来帮他实现这些个任务,那我们其实就做了代理的事,代理他们打跑小怪兽,拯救人质或者完成任务。不过细细分析起来好像也不是那么很到位,反正我觉得代理跟中介有时候从现实意义上还真是不好区分,这个问题还真得上操场上溜达溜达,把古剑里面能过的东西通通过一遍,看看什么地方用的上。

      以下是代码实现。

 

subject.h 文件

 

realSubject.h 文件

 

realSubject.cpp 文件

 

proxy.h 文件

 

proxy.cpp 文件

 

main.cpp 文件

 

运行结果

原创粉丝点击