代理模式的分类?

代理模式主要可以分为两大类:静态代理和动态代理。

  1. 静态代理:静态代理在程序运行前就已经存在代理类的字节码文件,代理类和委托类的关系在运行前就确定了。在静态代理中,代理类通常会被明确地定义出来,并且会实现与目标对象相同的接口。这需要程序员手动创建代理类,或者使用一些工具在编译期生成代理类的字节码。静态代理的一个典型应用实例是我们前面讨论的StaticPaymentProxy例子。

  2. 动态代理:动态代理是在运行时动态生成的,动态代理类并不需要我们手动创建,只需要在运行时动态地创建代理对象,该对象通常代理的是一个接口的所有方法。在Java中,可以使用java.lang.reflect.Proxy类创建动态代理,还有一些第三方库如CGLib、ByteBuddy、Javassist等也可以创建

发表评论

后才能评论