在一个项目中,当月的风格似乎是使用 switch 语句和枚举来决定要创建什么具体的类实例。
考虑到它们都实现相同的接口,但在创建实例时需要不同的对象参数,是否可以考虑用于对象创建的替代设计模式?
例如,当前代码是。
SomeInterface concreteInstance;
Switch() {
case A :
{
concreteInstance = new ConcreteAInstance(param1, param2);
}
case b :
{
concreteInstance = new ConcreteBInstance(param1, param2, param3);
}
case c :
{
concreteInstance = new ConcreteCInstance(param1);
}
}