定义
为其他对象提供代理,控制对代理对象的访问,代理又叫委托模式
Subject 抽象主题角色(可以使接口,也可以是抽象类)
RealSubjuct 真正的角色(被代理的类)
Proxy 代理类
例:
public interface Subject{
//定义方法
public void doSomething();
}
public class RealSubject implements Subject{
public void doSomething(){
//真正的业务逻辑
}
}
//他代理了真正处理业务逻辑的对象
public class Proxy implements Subject{
private RealSubject subject = null;
public Proxy(){
this.sujuct = new RealSubject();
}
//传递其他参数创建被代理类
public Proxy(Object object){
this.sujuct = new RealSubject(object);
}
public void doSomething(){
this.before();
this.subject.doSomething();
this.after();
}
//预处理方法
private void before(){
}
//善后处理方法
private void after(){
}
}
优点
职责清晰
扩展性
使用场景
为了减轻类的负担(网络购物,你只想买了到我手里,所以店铺做了找快递,寄快递,送东西到你手上的过程)
代理模式的扩展
强制代理
//暂时先不写了,这个不明白干嘛用,貌似是对外写的时候强制让使用者通过代理去访问,