J'ai une usine très simple qui prend un Enum comme l'un de ses paramètres pour déterminer le type d'objet qui doit être créé, et un autre paramètre qui est commun à tous les objets créés .Utilisation du modèle d'usine pour les classes avec des paramètres différents
Comme je l'ajout de types pour l'usine pour créer mes paramètres de constructeur d'objets commencent à différer, par exemple:
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;
}
}
Dois-je pas utiliser une usine et juste instancier les différents types avec la bons arguments ou est-ce que ce qui précède peut être amélioré d'une manière ou d'une autre pour le rendre plus flexible?
Vous pouvez supprimer Enum et utiliser des méthodes différentes à la place? –