java - java中工厂设计模式和抽象工厂设计模式有什么区别?

标签 java design-patterns

1) 工厂是否由具体工厂类实现,并使用 if else 检查类型并根据类型创建对象? 或者 我们有带有抽象创建方法的接口(interface)工厂 我们在具体工厂类中为每种不同类型的对象实现这个接口(interface),并实例化该特定类型对象的 obj。

2)抽象工厂与工厂有何不同?这只是工厂的工厂吗?

3) 我们如何更改创建特定类型对象的 if else 条件?如果我们删除 if else,那么它会变成抽象工厂吗?

最佳答案

工厂是一整套用于制造对象的技术。

抽象工厂是一个可以为您创建对象的接口(interface)。您无需指定它是如何制作的,工厂的实例有自己的方式来制作特定的对象或对象组。

工厂方法是类上的一种方法,可帮助您创建该类的实例。

您通常不会在工厂中使用 if/else 语句,因为:

  1. 对于抽象工厂,您拥有的工厂实例决定了它的工作方式
  2. 使用工厂方法时,您调用的特定方法决定了您正在制作的东西的类型。

这里有一个很好的跳跃点 - http://en.wikipedia.org/wiki/Creational_pattern

关于java - java中工厂设计模式和抽象工厂设计模式有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26462912/

相关文章:

java - 如何退出两个嵌套循环?

Java 俄罗斯方 block -如何更改一件掉落的计时器间隔,然后恢复回来?

java - 我应该如何为这个函数编写 JUnit

python - 定义函数的全局行为?好的做法

java - 使用比较器根据 ArrayList 对数组进行排序

java - Branch.io (Android SDK) 和 GDPR

java - 将用户输入从整数转换为 double

java - 同步信息的设计建议

java - 默认 Java 类(即非公共(public)、非抽象、非最终、Object 的子类)有什么好处吗?

C++:如何获得解耦的多态行为