gpt4 book ai didi

java - Java中的委托(delegate)模式应该同步哪个方法

转载 作者:行者123 更新时间:2023-11-30 07:24:51 25 4
gpt4 key购买 nike

在委托(delegate)模式中,如果我有一个具体类和一个包装类:

class Wrapper {
Concrete concrete = new Concrete();
void fn() {
concrete.fn();
}
}

class Concrete {
void fn() {
...
}
}

如果fn()方法应该被同步,那么我应该把synchronized关键字放在哪里?如果我们假设 Concrete::fn() 只会被 Wrapper::fn() 调用,那么这两个地方都可以吗?

最佳答案

我发现在 Wrapper:fn() 上使用同步可能存在多个问题:

  • synchronized 应谨慎使用:仅锁定那些需要同步的部分。

  • 锁定机制应该是具体实现的关注点 - 如果可能的话(您可能有一个不需要同步的实现)

关于java - Java中的委托(delegate)模式应该同步哪个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36960357/

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