У меня есть очень простая фабрика, которая использует Enum в качестве одного из параметров для определения типа объекта, который должен быть создан, и другой параметр, общий для всех создаваемых объектов.
Как яЯ добавляю больше типов для фабрики, чтобы создать параметры конструктора моего объекта, которые начинают различаться, например:
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;
}
}
Если я не использую фабрику и просто создаю экземпляры различных типов с правильными аргументами или могуВыше что-нибудь улучшить, чтобы сделать его более гибким?