介绍:通过代理对象控制对目标对象的访问,达到扩展目标对象的功能
结构:抽象类或接口、具体实现类、代理实现类
实现:
1、静态代理:
# 接口
public interface IRentHouse {
void rentHouse();
}
# 具体实现类
public class RentHouse implements IRentHouse {
@Override
public void rentHouse() {
System.out.println("租了一间房子。。。");
}
}
# 代理实现类
public class IntermediaryProxy implements IRentHouse {
private IRentHouse rentHouse;
public IntermediaryProxy(IRentHouse irentHouse){
rentHouse = irentHouse;
}
@Override
public void rentHouse() {
System.out.println("交中介费");
rentHouse.rentHouse();
System.out.println("中介负责维修管理");
}
}
2、动态代理
JDK动态代理
CGLIB动态代理