Posiadam starszą bazę kodu Java (jvm 1.4), która wydaje się używać klonowania jako alternatywy dla tworzenia instancji obiektu. Zgaduję, że to optymalizacja wydajności. Oto zmyślony przykład:Czy klonowanie zapewnia poprawę wydajności w stosunku do konstruktorów/metod fabrycznych?
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
}
}
zwykłe ostrzeżenia o przedwczesnej optymalizacji pomimo, był to faktycznie zaleca idiom w pewnym momencie?
Wydaje się dziwne. Użyłbym konstruktora do tworzenia nowych obiektów. –