为什么要使用“动态代理类”而不是“标准代理”模式?
两者的缺点或优点是什么?
似乎它们都有相同的最终结果,只是它们的实现方式不同。
动态代理类 https://docs.oracle.com/javase/8/docs/technotes/guides/reflection/proxy.html
动态代理类是一个实现在运行时指定的接口列表的类,这样通过类实例上的一个接口的方法调用将被编码并通过统一接口分派到另一个对象。因此,动态代理类可用于为接口列表创建类型安全的代理对象,而无需预先生成代理类,例如使用编译时工具。动态代理类实例上的方法调用被分派到实例的调用处理程序中的单个方法,并且它们使用标识被调用方法的 java.lang.reflect.Method 对象和包含对象类型的数组进行编码论据。
标准代理模式https://en.wikipedia.org/wiki/Proxy_pattern
代理,在其最一般的形式中,是一个作为与其他事物的接口的类。代理可以连接到任何东西:网络连接、内存中的大对象、文件或其他一些昂贵或无法复制的资源。简而言之,代理是由客户端调用以访问幕后真实服务对象的包装器或代理对象。在代理中可以提供额外的功能,例如当对真实对象的操作是资源密集型时进行缓存,或者在调用对真实对象的操作之前检查先决条件。对于客户端,代理对象的使用与使用真实对象类似,因为两者都实现相同的接口。