gpt4 book ai didi

java - 克隆是否提供了优于构造函数/工厂方法的性能改进?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:16:59 27 4
gpt4 key购买 nike

我正在维护一个较旧的 Java 代码库 (jvm 1.4),它似乎使用克隆作为对象实例化的替代方法,我猜这是一种性能优化。这是一个人为的例子:

public class Foo {
private SomeObject obj; // SomeObject implements Cloneable
public Foo() {
obj = new SomeObject();
obj.setField1("abc"); // these fields will have the same value every time
obj.setField2("def");
}
public void doStuff() {
SomeObject newObj = obj.clone(); // clone it instead of using a factory method
// do stuff with newObj
}
}

尽管有关于过早优化的常见警告,但在某些时候这实际上是推荐的习惯用法吗?

最佳答案

大概他们想要一份副本。也许他们想将它传递给另一个函数,并且不能确定那个函数不会改变它。这是一种确保方法 doStuff() 相对于调用它的 Foo 对象的状态为常量的方法。

关于java - 克隆是否提供了优于构造函数/工厂方法的性能改进?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/663079/

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