代理模式的核心思路就是一个接口有两个子类,一个子类完成核心的业务操作,另一个子类完成与核心业务有关的辅助性操作。
代理模式分为静态代理模式和动态代理模式。
静态代理模式:
//接口类
interface Food{
public void eat();
}
//核心业务操作类
class RealFood implements Food{
@Override
public void eat() {
System.out.println("马小超在吃饭!");
}
}
//与核心业务有关的辅助性操作
class ProxyFood implements Food{
private Food food;
public Food bind(Food food){
this.food = food;
return this;
}
@Override
public void eat() {
this.prepare();
this.food.eat();
this.after();
}
private void prepare(){
System.out.println("吃饭钱准备:洗手");
}
private void after(){
System.out.println("吃饭后收拾:洗碗");
}
}
//测试类
public class StaticProxy {
public static void main(String[] args){
Food food = new ProxyFood().bind(new RealFood());
food.ea