代理模式,核心是为其他对象提供一种代理以控制对这个对象的访问。抽象主题角色:通过接口或抽象类声明真实角色实现的业务方法。具体主题角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。代理主题角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。
public interface Subjcet{
public void request();
}
public class RealSubject implements Subject{
public void request();
}
public class Proxy implements Subject(){
private subject subject = null;
public proxy (){
this.subject=new proxy();
}
public proxy (Object objects){
;
}
public void request(){
subject.request();
}
}
代理模式可以分为普通代理和强制代理,普通代理的情况家用户必须与代理产生直接联系,强制代理允许用户不知道代理的存在直接调用真实角色。
普通代理客户端只能反访问代理角色,实现时在
抽象主题角色的构造函数中传入相应参数,同时将代理者名字传给代理主题角色。
强制代理需要在
抽象主题角色中为自己指定代理,指定代理允许访问,实现由真实角色查找代理角色的过程。