1、代理模式定义:为其他对象提供一种代理以控制这个对象的访问。
2、代理模式的构成:
(1)、Proxy(代理对象):实现与具体的目标对象一样的接口,这样就可以使用代理来代替具体的目标对象。保存一个指向具体目标对象的引用,可以在需要的时候调用具体的目标对象。
(2)、Subject(目标接口):定义代理和目标对象的接口。
(3)、RealSubject(具体的目标对象):真正实现目标接口要求的功能。
3、代理模式的示例代码
(1)、目标接口
public interface Subject(){
public void request();
}
(2)、实现类
public class RealSubject immplents Subject{
public void request(){
//执行具体的功能
}
}
(3)、代理类
public class Proxy immplents Subject{
private RealSubject realSubject;
public Proxy(RealSubject realSubject){
this.realSubject = realSubject;
}
public void request(){
//调转具体的目标对象前,可以执行一些功能处理
realSubject.request();
//调转具体的目标对象后,可以执行一些功能处理
}
}
4、代理模式的功能
代理模式是通过创建一个代理对象,用这个代理对象去代表真实的对象,客户端得到这个代理对象之后,对客户端没有什么影响。
当客户端操作这个代理对象的时候,实际上功能最终还是由真实的对象来完成,只不过是通过代理操作的,也就是客户端操作代理,代理操作真正的对象。
正是因为代理对象加载客户端和真实对象之间,在此之间才有很多功能需要实现。