Ich habe eine sehr einfache Factory, die einen Enum als einen ihrer Parameter verwendet, um den Typ des zu erstellenden Objekts und einen anderen Parameter zu bestimmen, der allen erstellten Objekten gemeinsam ist .Verwenden des Factory-Patterns für Klassen mit unterschiedlichen Parametern
Wie ich mehr Arten für die Fabrik das Hinzufügen meines Objektkonstruktor-Parameter zu erstellen beginnen zu unterscheiden, zB:
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;
}
}
Sollte ich nicht eine Fabrik verwenden und nur die die verschiedenen Arten mit der instanziiert richtige Argumente oder kann das Obige irgendwie verbessert werden, um es flexibler zu machen?
Sie können Enum entfernen und stattdessen andere Methoden verwenden? –