java - 在 java switch 语句中创建新对象。可用替代设计模式吗?

标签 java design-patterns creation-pattern

正在开发一个项目,其中本月的风格似乎是使用 switch 语句和枚举来决定要创建什么具体的类实例。

考虑到它们都实现相同的接口(interface),但在创建实例时需要不同的对象参数,是否可以考虑使用替代设计模式来创建对象?

例如当前的代码是。

SomeInterface concreteInstance;
Switch() {
  case A :
  {
     concreteInstance = new ConcreteAInstance(param1, param2);
  }

  case b : 
  {
    concreteInstance = new ConcreteBInstance(param1, param2, param3);
  }
  case c :
  {
    concreteInstance = new ConcreteCInstance(param1);
  }
}

最佳答案

看一下抽象工厂模式:

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

顺便说一句。没有“工厂模式”。这四个人定义了两种风格:抽象工厂和工厂方法。

关于java - 在 java switch 语句中创建新对象。可用替代设计模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40672607/

相关文章:

C++模板方法及获取结果——设计

java - 我们可以通过非私有(private)的instanceName来创建一个Singleton类吗?

c++ - C++ 抽象工厂是否应该为构造的对象提供 destroy 方法?

design-patterns - 注册表模式 Vs 服务定位器模式 Vs 依赖注入(inject)容器

java - 删除 MouseListener 会产生 ArrayIndexOutOfBoundsException

java - 如何在 Java Swing 中同步两个 View

java - 排序——是否可以很好地使用子数组进行排序?

java - Swing中的JLabel调整

java - 如何更新放入 JTextField 的文件中的行