在java switch语句中创建新对象。可选择的设计模式?

时间:2016-11-18 08:39:20

标签: java design-patterns creation-pattern

处理一个项目,其中月份的味道似乎使用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);
  }
}

1 个答案:

答案 0 :(得分:3)

看看抽象工厂模式:

https://en.wikipedia.org/wiki/Abstract_factory_pattern

顺便说一下。没有"工厂模式"。四人组定义了两种风格:抽象工厂和工厂方法。