私はオブジェクトのインスタンス化の代替としてクローンを使用しているような古い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
}
}
にもかかわらず、時期尚早の最適化に関する通常の注意点は、これはいくつかの点で実際に推奨イディオムでしたか?
奇妙に思えます。私は新しいオブジェクトのインスタンス化のためにコンストラクタを使用します。 –