【设计模式】代理模式

86 阅读1分钟

最近在写RPC框架时用到了代理模式,进一步增加了对代理模式的理解,因为服务对代发送请求的客户端在代码中对是不可见的,所以可以对外提供一个方法,使用动态代理从class类中通过反射来实例化出对象。

image.png

关于代理模式知乎上有个回答写的非常好 www.zhihu.com/question/20…

以下是个人简述:

代理对象 = 增强代码 + 目标对象(原对象)

静态代理动态代理主要是插入增强代码和创建class对象这一过程有所区别

静态代理需要为每个要被代理的类编写专门的增强代理类,然后实例化增强代理类

而动态代理无需为每个被代理者编写,只需要写出公共的增强代码,然后本质上是class造class之后再实例化

关于class对象和实例的关系,有一张图很直观

image.png