代理模式
代理模式在 Java 开发中是一种比较常见的设计模式。设计目的旨在为服务类与客户类之间插入其他功
能,插入的功能对于调用者是透明的,起到伪装控制的作用。如租房的例子:房客、中介、房东。对应
于代理模式中即:客户类、代理类 、委托类(被代理类)。
为某一个对象(委托类)提供一个代理(代理类),用来控制对这个对象的访问。委托类和代理类有
一个共同的父类或父接口。代理类会对请求做预处理、过滤,将请求分配给指定对象。
生活中常见的代理情况:
租房中介、婚庆公司等
代理模式的两个设计原则:
- 代理类 与 委托类 具有相似的行为(共同)
- 代理类增强委托类的行为
静态代理
静态代理三要素
- 有共同得行为
- 目标对象
- 代理对象
静态代理的特点
- 目标对象固定
- 在程序执行前就的到了目标角色
- 代理对象会增强目标对象的行为
eg
举个例子婚庆公司:你想要结婚找婚庆公司代理
实现相同的接口
public interface Marry {
public void toMarry();
}
目标对象(你)
public class You implements Marry{
@Override
public void toMarry() {
System.out.println("我要结婚了");
}
}
婚庆公司
public class Proxy implements Marry{
Marry marry;
public Proxy(Marry marry) {
this.marry = marry;
}
@Override
public void toMarry() {
before();
marry.toMarry();
after