定义:为其他对象提供一种代理以控制对这个对象的访问。
1.代理接口:里面定义了各种方法。
2.实现接口的真实子类:实现代理接口的各种方法。
3.代理类:和2一样也实现代理接口,定义一个2真实子类的属性(保存一个引用)可通过构造函数传入来设值。在实现代理接口的各种方法里调用2真实子类的各种方法,以达到通过代理类来调用 真实类的功能。
二。代理模式的应用:
1.远程代理:也就是为一个对象在不同的地址空间提供局部代表。这样可以隐藏一个对象存在于不同地址空间的事实。(客户端WebService)
2.虚拟代理:根据需要创建开销很大的对象,通过它来存放实例化需要很长时间的真是对象。为了达到性能的最优化。比如浏览网页时,图片的下载,那些未打开的图片框,就是 通过虚拟代理来替代了真是的图片,代理存储了真实图片的路径和尺寸。
3.安全代理:用来控制真实对象访问时的不同访问权限。
4.智能指引:是指当调用真实的对象时,代理处理另外一些事。(1.如计算真实对象的引用次数,这样当该对象没有引用时,可以自动释放它;2.或当第一次引用一个持久对象时,将它装入内存;3.或访问一个对象前,检查是否已经锁定它,以确保其他对象不能改变它)