代理模式(Proxy) : 为其他对象提供一种代理以控制对这个对象的访问.
这样做的好处是,可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能.
这里使用到编程中的一个思想:不要随意去修改别人已经写好的代码或者方法,如果需改修改,可以通过代理的方式
在代理模式中,我们创建具有现有对象的对象,以便向外界提供功能接口。
最容易理解的代理模式,就是Windows的快捷方式,用快捷方式来访问文件,即是代理模式的一种应用
优点: 1、职责清晰。 2、高扩展性。 3、智能化。
缺点: 1、由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。 2、实现代理模式需要额外的工作,有些代理模式的实现非常复杂。
使用场景:按职责来划分,通常有以下使用场景: 1、远程代理。 2、虚拟代理。 3、Copy-on-Write 代理。 4、保护(Protect or Access)代理。 5、Cache代理。 6、防火墙(Firewall)代理。 7、同步化(Synchronization)代理。 8、智能引用(Smart Reference)代理。
代码示例:

Subject类,定义了RealSubject和Proxy的共用接口,这样就在任何使用RealSubject的地方都可以使用Proxy.
abstract class Subject{
	public abstract void  Request();
}
RealSubject类,定义Proxy所代表的真实实体.
class RealSubject implements Subject{
	public void Request(){
		System.out.println("真正的请求");
	}
}Proxy类,保存一个引用使得代理可以访问实体,并提供一个与Subject的接口相同的接口,这样的代理就可以用来替代实体.
class Proxy implements Subject{
	RealSubject realSubject;
	public void Request(){
		if (realSubject == null) {
			realSubject = new RealSubject();
		}
		realSubject.Request();
	}
}客户端代码
Proxy proxy = new Proxy();
proxy.Request();
 
                   
                   
                   
                   
                            
 本文详细介绍了代理模式的概念及其应用场景,通过具体实例展示了如何实现代理模式,包括定义代理与真实主题的共同接口,以及如何通过代理来扩展真实主题的功能。
本文详细介绍了代理模式的概念及其应用场景,通过具体实例展示了如何实现代理模式,包括定义代理与真实主题的共同接口,以及如何通过代理来扩展真实主题的功能。
           
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   1324
					1324
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            