gpt4 book ai didi

java - 无法理解代理的缺点

转载 作者:行者123 更新时间:2023-12-01 18:44:46 26 4
gpt4 key购买 nike

我在 this article 中阅读了有关代理模式的内容并理解了这个例子,但是 this comment使我困惑。评论指出:

There are 2 big problems with proxies, especially in enterprise environments.

1) You can't do self calls. A good example is a proxy that does transaction management or security. So you need to make sure that instead of doing a self call, you forward the call to the proxy. This makes simple classes complex.

2) There are issues with identity; a good examlpe is a hibernate proxy which makes it impossible to do a reference comparison, even though you get the guarantee that there are not multiple object instances of the same entity in a session.

我的问题:

  1. self 调用的含义是什么?
  2. 为什么当两者都引用代理对象时我们不能进行引用比较?

最佳答案

  1. “自调用”是指使用 otherMethod() 而不是 var.otherMethod() 来调用同一对象上的方法。由于对同一对象的调用直接通过 this 而不是代理,因此不会发生代理将应用的任何特殊处理。

  2. 运行时环境可能会摆弄代理对象,并且您总是冒着意外尝试将代理本身与隐藏在其后面的业务对象进行比较的风险,就像对象传递 this 引用的情况一样在某个地方,有人尝试比较它,会从运行时查找它(并获取代理)。

关于java - 无法理解代理的缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18266390/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com