java中有一个名为Proxy:https://docs.oracle.com/javase/7/docs/api/java/lang/reflect/Proxy.html的类,据我所知,它用于在运行时实现接口。另一方面,当我搜索这个的时候,我遇到了一个解释代理设计模式的页面,那么它们之间有什么联系吗?或者它们是完全不同的东西?
发布于 2021-10-28 08:48:58
经常使用Proxy类实际上是为了以自动化的方式实现代理设计模式。
例如,如果你想用一些额外的行为在代理中自动包装一个对象(比方说速率限制方法调用,但它实际上可以是任何东西),那么Proxy允许你以一种非常通用的方式来完成这一点,而不需要编写特定于给定类的代码到代理中。
请注意,这并不是对Proxy类的唯一一次使用。例如,代理设计模式的定义方式是原始对象和代理具有相同的接口(即相同的方法,等等),而这对于Proxy类来说并不是必需的。调用处理程序不需要将调用转发到类似“形状”的对象,但可以做任何它想做的事情。一个常见的例子就是constructing mock objects。
https://stackoverflow.com/questions/69750933
复制相似问题