1) 工厂是否由具体工厂类实现,并使用 if else 检查类型并根据类型创建对象? 或者 我们有带有抽象创建方法的接口(interface)工厂 我们在具体工厂类中为每种不同类型的对象实现这个接口(interface),并实例化该特定类型对象的 obj。
2)抽象工厂与工厂有何不同?这只是工厂的工厂吗?
3) 我们如何更改创建特定类型对象的 if else 条件?如果我们删除 if else,那么它会变成抽象工厂吗?
最佳答案
工厂是一整套用于制造对象的技术。
抽象工厂是一个可以为您创建对象的接口(interface)。您无需指定它是如何制作的,工厂的实例有自己的方式来制作特定的对象或对象组。
工厂方法是类上的一种方法,可帮助您创建该类的实例。
您通常不会在工厂中使用 if/else 语句,因为:
- 对于抽象工厂,您拥有的工厂实例决定了它的工作方式
- 使用工厂方法时,您调用的特定方法决定了您正在制作的东西的类型。
这里有一个很好的跳跃点 - http://en.wikipedia.org/wiki/Creational_pattern
关于java - java中工厂设计模式和抽象工厂设计模式有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26462912/