概念

提供给客户机一个代理类,这样可以控制客户机对目标对象的访问。

举例

首先会提供客户机一个Subject接口,作为被访问的对象对外访问控制接口。然后让被访问对象实现Subject接口,实现客户机所需的功能。最后提供一个代理类,让它包含访问接口的实现。

访问对象对外接口
public interface ISubject {
    void operate();
}
被访问的对象
public class ConcretSubject implements ISubject{
    @Override
    public void operate() {
        System.out.println("我是具体功能模块");
    }
}
代理类
public class Proxy implements ISubject{
    private ISubject iSubject;
    public Proxy(ISubject iSubject) {
        this.iSubject = iSubject;
    }
    @Override
    public void operate() {
        iSubject.operate();
    }
}
执行类:RunMain
public class RunMain {
    public static void main(String[] args){
        ConcretSubject concretSubject = new ConcretSubject(); // 被访问对象
        Proxy proxy = new Proxy(concretSubject); // 设置代理类作为控制访问的过度类
        proxy.operate(); // 操作
    }
}
我是具体功能模块