我正在浏览一篇关于代理模式的文章。
在这篇文章中提到了代理模式的一些缺点,但我无法理解:
1)
这里的缺点是扩展器没有意识到的“魔术”可能正在发生(“黑盒”问题)。请解释一下魔法。
2)
代理可以从其客户端掩盖易失性资源的生命周期和状态。客户端可能在没有意识到资源当前不可用的情况下调用代理......在这种情况下,代理必须阻塞直到资源再次可用,或者它必须产生某种错误。在 Java 术语中,它必须是一个未经检查的异常,因为代理必须符合原始对象的接口。此外,客户端可能不知道它现在调用的资源与它一秒钟前调用的资源不同;如果资源上有任何状态,则客户端可能会混淆该状态似乎已被遗忘。
请解释。
3)
如果使用代理来表示本地进程中的远程资源,这可能会掩盖涉及远程通信的事实。正如我们所知,远程调用与本地调用完全不同,我们的程序不应该将其视为相同。如果代理以某种方式声明它是远程资源的代理,而不是本地资源,那就更好了。然后客户端将能够只选择本地资源,或者在使用远程资源时修改它们的行为。
请您帮助我理解上述与 Proxy 缺点相关的三点吗?