设计模式之代理模式学习

代理模式:为其他对象提供一种代理,以控制对这个对象的访问。

 

     Subject类,被代理的类。定义了RealSubjectProxy的接口。这样代理类就可以执行被代理的所有行为。RealSubject定义Proxy所代理的真实实体。Proxy类,代理类,与RealSubject有相同的接口。


 

     通俗的说就是在访问对象时引入一定程度的间接性,正是有了这种间接,可以附加多种用途。

     一般有以下几种应用:

     一:远程代理,也就是为对象在不同的地址空间提供局部代表,这样就可以隐藏一个对象存在于不同地址空间的事实。

     二:虚拟代理,根据需要创建开销很大的对象,通过它来存在实例化时间很长的真实对象。

     三:安全代理,控制真是访问对象的权限。

     四:智能指引,是指当调用真实对象时,代理处理另外一些事情。

     现在看来代理模式也并不是多么新奇。很早之前就有接触,以前刚学习C++的时候接触过,《C++大学教程》里有介绍。记得当时是为了隐藏类的成员变量,因为当类创建好后,虽然类的实现可以以dll的形式提供,但是类的头文件还是必须提供给客户的,这就造成某些信息的泄漏。如成员变量。引入了代理后,仅仅只需要将代理的头文件暴露给客户,实现了隐藏被代理类的目的。

posted on 2012-05-09 20:45  ithzhang  阅读(166)  评论(0)    收藏  举报

导航