代理设计模式的主要特点:一个接口提供两个子类,其中一个子类是真实业务操作类,另一个子类是代理业务操作类,没有代理业务操作,真实业务无法进行。
真实业务操作的接口定义
package com.tencent.baosen.interfacelearn;
/**
* 真实业务操作的接口
*/
public interface IEat {
void get();
}
真实业务实现类
package com.tencent.baosen.interfacelearn;
public class RealEat implements IEat{
@Override
public void get() {
System.out.println("【真实业务】真吃饭的逻辑业务");
}
}
代理业务类
package com.tencent.baosen.interfacelearn;
public class ProxyEat implements IEat{
private IEat eat;
public ProxyEat(IEat eat){
this.eat = eat;
}
@Override
public void get() {
prepare();
this.eat.get();
clear();
}
private void prepare(){
System.out.println("【代理类】准备食物");
}
private void clear(){
System.out.println("【代理类】收拾残羹剩饭");
}
}
客户端测试类
package com.tencent.baosen.interfacelearn;
public class test {
public static void main(String[] args) {
IEat eat = new ProxyEat(new RealEat());
eat.get();
}
}
运行结果:
【代理类】准备食物
【真实业务】真吃饭的逻辑业务
【代理类】收拾残羹剩饭