Я пытаюсь использовать шаблон Factory Method для создания разных объектов, но у меня есть несколько сомнений. Позвольте мне показать вам сценарий:Несколько параметров в шаблоне Factory Method
public class ObjectFactory{
public static IObject createObject(Param1 p1, Param2 p2, Param3 p3){
if (p1.getName('name1')){
return new Object1(p1,p2,p3);
}else{
return new Object2(p1, p2);
}
}
}
public interface IObject{
void doSomething();
}
public class Object1 implements IObject {
public Object1(Param1 p1, Param2 p2, Param3 p3){}
}
public class Object2 implements IObject {
public Object1(Param1 p1, Param2 p2){}
}
Im немного путают с Param3 в методе CREATEOBJECT в ObjectFactory в. У меня всегда есть этот параметр, но иногда это бессмысленно. Мне это не нравится, потому что если в какой-то день я добавлю больше объектов с разными параметрами, мне нужно будет добавить слишком много параметров в подпись метода.
Я думал в определении: общественности статической IObject CreateObject (Param1 p1, p2 Param2, Param3 p3) общественности статической IObject CreateObject (Param1 p1, p2 Param2) , но тогда это не фабричный метод шаблон, потому что invoker должен знать, какой метод должен быть выполнен.
Знаете ли вы, что вы имеете дело с этим?
Заранее спасибо.
Взгляните на образец строителя: https://en.wikipedia.org/wiki/Builder_pattern –