阅读 61

代理模式

定义

为其他对象提供代理,控制对代理对象的访问,代理又叫委托模式

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(){
        
    }
}

复制代码

优点

职责清晰

扩展性

使用场景

为了减轻类的负担(网络购物,你只想买了到我手里,所以店铺做了找快递,寄快递,送东西到你手上的过程)

代理模式的扩展

强制代理

//暂时先不写了,这个不明白干嘛用,貌似是对外写的时候强制让使用者通过代理去访问,