Estoy manteniendo una base de código Java anterior (jvm 1.4) que parece utilizar la clonación como una alternativa a la instanciación de objetos, supongo que como una optimización del rendimiento. He aquí un ejemplo artificioso:¿La clonación proporciona una mejora en el rendimiento sobre los métodos de construcción/fábrica?
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
}
}
Las advertencias habituales acerca de la optimización prematura no obstante, era esto realmente un lenguaje recomendado en algún momento?
Parece extraño. Usaría el constructor para la nueva instanciación de objetos. –