类图
效果
代理对象开始执行……
真实对象正在处理
代理对象结束执行……
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("代理对象结束执行……");
}
}