设计模式-代理模式的三种形式
代理模式是一种结构型设计模式,它允许一个对象(代理)代表另一个对象进行控制访问。代理模式主要用于在访问某个对象时引入一定程度的间接性,以支持更灵活的控制。代理模式有三种形式静态代理、动态代理、cglib代理。
1.静态代理
静态代理是代理模式的一种形式,它在编译期间就已经确定代理关系,即代理类和真实主题类的关系在代码中是明确的。在静态代理中,代理类和真实主题类都要实现相同的接口,或者是继承相同的父类。
接口:
public interface Subject { void request(); }
代理类:
public class Proxy implements Subject { private RealSubject realSubject; public Proxy(RealSubject realSubject) { this.realSubject = realSubject; } @Override public void request() { // 在调用真实主题对象方法前后可以执行一些额外的操作 System.out.println("Proxy: Pre-processing"); realSubject.request(); System.out.println("Proxy: Post-processing"); } }
被代理类:
public class RealSubject implements Subject { @Override public void request() { System.out.println("RealSu