文章目录
一、什么是代理模式?
代理模式(Proxy Pattern):代理模式是 Java 常见的设计模式之一。所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理对象,来间接的调用实际的对象。通俗的来讲代理模式就是我们生活中常见的中介。
二、 为什么使用代理模式?
- 隔离作用:在某些情况下,一个客户类不想或者不能直接引用一个委托对象,而代理类对象可以在客户类和委托对象之间起到中介的作用,其特征是代理类和委托类实现相同的接口。
- 开闭原则:代理类除了是客户类和委托类的中介之外,我们还可以通过给代理类增加额外的功能来扩展委托类的功能,这样做我们只需要修改代理类而不需要再修改委托类,符合代码设计的开闭原则。
代理模式的优点:
代理模式的缺点:
三、 代理模式的实现
代理模式可以分为两种:静态代理、动态代理。
1、静态代理
静态代理模式由三个部分构成:
- 一个公共的接口
- 一个被代理角色
- 一个代理角色
1.1、 创建公共的接口
//公共接口
public interface Rent {
void renting();
}
1.2、 创建被代理角色
//被代理对象
public class Corey implements Rent{
//这是被代理对象!(房主)
@Override
public void renting() {
System.out.println("Corey有房出租");
}
}
1.3、 创建代理角色
//代理对象(中介)
public class StaticProxyRent implements Rent{
private Rent rent;
public StaticProxyRent(Rent rent){
this.rent = rent;