Spring- AOP详解之静态代理
为什么要学习代理模式,因为AOP的底层机制就是动态代理!
代理模式:
- 静态代理
- 动态代理
静态代理
静态代理角色分析
- 抽象角色 : 一般使用接口或者抽象类来实现
- 真实角色 : 被代理的角色
- 代理角色 : 代理真实角色 ; 代理真实角色后 , 一般会做一些附属的操作 .
- 客户 : 使用代理角色来进行一些操作
demo测试(一个租房业务)
Rent.java 即抽象角色(租房这个业务)
//租房
public interface Rent {
public void rent();
}
Host.java 真实角色(房东)
//房东 真实角色
public class Host implements Rent {
@Override
public void rent() {
System.out.println("房东要出租房子");
}
}
Proxy.java 代理角色(中介)
//中介 代理,这里使用组合,而不是继承
public class Proxy implements Rent{
private Host host;
public Proxy(){
}
public Proxy(Host host) {
this.host = host;
}
@Override
public void rent() {
//帮房东租房子
seeHouse();
host.rent();
hetong