Tengo una fábrica muy simple que toma un Enum como uno de sus parámetros para determinar el tipo de objeto que se debe crear, y otro parámetro que es común a todos los objetos que se crean .Usando el patrón de fábrica para las clases con diferentes parámetros
Como estoy añadiendo más tipos de la fábrica para crear parámetros de mi objeto de constructores están empezando a ser diferentes, por ejemplo:
public class someFactory {
public someFactory() {
}
public SomeObject newObject(Type type, Object data) {
return this.newObject(type, data, "");
}
public SomeObject newObject(Type type, Object data, Object stringOrObject) {
SomeObject someObject = null;
if (type != null) {
switch(type) {
case CREATE:
someObject = new CreateObject(data);
break;
case DELETE:
someObject = new DeleteObject(data, (String)stringOrObject);
break;
case EDIT:
someObject = new EditObject(data, (Object)stringOrObject);
break;
default:
break;
}
}
return someObject;
}
}
¿No debería estar usando una fábrica y solo una instancia del los diferentes tipos con el argumentos correctos o ¿se puede mejorar lo anterior de alguna manera para hacerlo más flexible?
¿Puede eliminar Enum y usar métodos diferentes en su lugar? –