抽象工厂只是一套工厂方法吗?或者这些模式之间还有其他区别吗?
答案 0 :(得分:2)
根据Design Patterns,p。 95:
AbstractFactory类经常出现 用工厂方法实现,但是 它们也可以使用 原型。
答案 1 :(得分:1)
主要区别是恕我直言,抽象工厂是抽象,这意味着它必须被子类化才能被使用。工厂方法不能被子类化,因此您不能使用构造对象的不同实现。
如果计划提供构造对象的多个实现,则最好使用抽象工厂。此外,如果您使用单元测试,抽象工厂为您提供了更好的可测试代码,因为您可以让模拟工厂创建模拟对象进行测试。
抽象工厂通常会结合多个连贯的工厂方法。
答案 2 :(得分:0)
抽象工厂设计占用程序的一部分并封装它。
工厂方法类似地定义了用于创建对象的界面。
差异: Abstract Factory
通常作为Singleton实现,它会创建一系列对象。它通常在应用程序加载时设置,之后不会更改。
另一方面,Factory Method
通常不是主题组或单身人士。相反,它是一种允许灵活创建对象的实现。因此,它不一定会创建一系列对象
相似性:两者都相似,因为它们都将对象的创建与其代码分离。
这是一个不错的pdf
文件。看看吧。