处理一个项目,其中月份的味道似乎使用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);
}
}
答案 0 :(得分:3)
看看抽象工厂模式:
https://en.wikipedia.org/wiki/Abstract_factory_pattern
顺便说一下。没有"工厂模式"。四人组定义了两种风格:抽象工厂和工厂方法。