代理模式实现

类图

代理模式实现_第1张图片
代理模式类图.png

效果

代理对象开始执行……
真实对象正在处理
代理对象结束执行……

Process finished with exit code 0

实现

使用方

package com.company;

public class Main {

    public static void main(String[] args) {
    // write your code here
        CommonInterface proxy = new ProxyOne();
        proxy.protocolMethod();
    }
}

遵循的协议

package com.company;

/**
 * 公共的协议接口
 */
public interface CommonInterface {
    /**
     * 示例性的接口方法。
     */
    void protocolMethod();
}

被代理方

package com.company;

/**
 * 真正的对象本身
 */
public class RealOne implements CommonInterface {
    @Override
    public void protocolMethod() {
        System.out.println("真实对象正在处理");
    }
}

代理方

package com.company;

public class ProxyOne implements CommonInterface {
    private RealOne realOne;//被代理的对象。

    public RealOne getRealOne() {
        if (this.realOne == null)this.realOne = new RealOne();
        return realOne;
    }

    @Override
    public void protocolMethod() {
        System.out.println("代理对象开始执行……");
        this.getRealOne().protocolMethod();
        System.out.println("代理对象结束执行……");
    }
}

你可能感兴趣的:(代理模式实现)