gpt4 book ai didi

java - 性能/灵活性,例如类或扩展类

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

我正在使用 2 个库,并且我需要其中一个库中的一个类才能具有另一个库的功能。我的第一次尝试是获取库 A 的源代码并让该类扩展库 B 中的类。这工作得很好,除了大量修复等,这些修复不会使代码变得那么稳定等,并且更新其中一个库成为一个问题 hell 。

像这样:

abstract class classA extends classB{
}

现在我也想过做这样的事情:

abstract class newClass extends classB{
private classA A = new classA();

public void exampleMethod(){
A.exampleMethod();
}
}

第二个选项性能不佳吗?如果是的话,有多糟糕?

最佳答案

由于多种原因,通过委托(delegate)形式(mixin)进行扩展是可取的,但最相关的是您(可能)以非规范的方式扩展第 3 方库类。

但这都是猜测,因为我们不知道您在谈论什么库。例如,它可能是一个写得不好的库,其中 classA (使用您的示例)确实不应该被扩展,但作者忽略了规范 final class classA等等。如果是这种情况,那么显然您不想扩展该类(即使可以)。

综上所述,考虑到您 (a) 仅需要共享功能,(b) 不需要多态语义,委托(delegate)形式非常有意义。

关于表现焦虑的建议:对其进行基准测试。

不要忽视final——JIT是你的 friend (善待它并喂养它):

final private classA A = new classA();

关于java - 性能/灵活性,例如类或扩展类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6912627/

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