Java设计模式之代理模式

模式结构:

Subject:抽象主题角色

Proxy:代理主题角色

RealSubject:真实主题角色


UML图:

Java设计模式之代理模式_第1张图片


例子代码:

Java设计模式之代理模式_第2张图片


抽象主题角色:

public interface Subject {
    void request();
}

具体主题角色:

public class ConcreteSubject implements Subject {
    @Override
    public void request() {
        System.out.println("代理...");
    }
}


代理主题角色:

public class Proxy implements Subject{

    private Subject subject;

    public Proxy(Subject subject) {
        this.subject = subject;
    }

    public void preRequest(){
        System.out.println("代理前...");
    }

    public void afterRequest(){
        System.out.println("代理后...");
    }

    @Override
    public void request() {
        preRequest();
        subject.request();
        afterRequest();
    }
}


客户类:

public class Client {
    public static void main(String[] args) {
        //实例代理对象
        Subject subject = new ConcreteSubject();
        //对象代理
        Proxy proxy = new Proxy(subject);
        //代理结果
        proxy.request();
    }
}

结果打印:

Java设计模式之代理模式_第3张图片

你可能感兴趣的:(java,java设计模式,代理模式)