Spring 的学习6_______静态代理和动态代理(AOP的底层实现原理)
代理模式可分为静态代理,动态代理。 1.静态代理: 静态代理的角色分析: 1.真实对象; 2.代理真实对象的对象(代理对象)一般会添加一些附加的操作; 3.真实对象和代理对象抽象出来的公共部分(一般为抽象类或者接口); 4.用户(通过代理对象来调用真实对象的方法)。 静态代理的一个代码案例: 情景模型:你(用户)通过租房中介(代理对象)从房东(真实对象)进行租房的活动。 真实对象(Host) //真实对象 public class Host implements Rent { public void rent() { System.out.println("Host 租房子啦!"); } } 代理对象: //代理对象 public class Proxy implements Rent { private Host host; public Proxy(Host host) { this.host = host; } public void rent() { lookHouse(); host.rent(); fare(); } //代理对象添加的额外的操作 public void lookHouse(){ System.out.println("带你一起去看看房子!"); } public void fare(){ System.out.println("交易结束,请按时付款!"