'Factory' 设计模式在工厂中可以有超过 1 个抽象类型吗?
Can a 'Factory' Design Pattern have more than 1 abstract type in a factory?
请注意;工厂,而不是抽象工厂。
说,有一个 接口 Shape
具体 class 就像 Pentagon
.假设一个 抽象 class Quadrilateral
实现了 Shape
并且有自己的具体类型,例如 Square
.
这仍然被认为是工厂方法吗?
首先,Shape
接口代表工厂创建的产品。只要工厂 returns Shape
个实例,产品继承层次结构的任何其他细节都与工厂及其客户无关。
其次,评论中链接的教程描述了 Head First Design Patterns 所称的 Simple Factory。它不是 GoF 设计模式。您可以阅读我对 GoF 模式的看法 here.
最后,警告:提防任何使用短语“工厂模式”的博客或教程。没有名为“Factory”的单一模式。 Factory 是一种模式,包括 GoF 书籍内外的实例。至少有四种常用的工厂模式。
请注意;工厂,而不是抽象工厂。
说,有一个 接口 Shape
具体 class 就像 Pentagon
.假设一个 抽象 class Quadrilateral
实现了 Shape
并且有自己的具体类型,例如 Square
.
这仍然被认为是工厂方法吗?
首先,Shape
接口代表工厂创建的产品。只要工厂 returns Shape
个实例,产品继承层次结构的任何其他细节都与工厂及其客户无关。
其次,评论中链接的教程描述了 Head First Design Patterns 所称的 Simple Factory。它不是 GoF 设计模式。您可以阅读我对 GoF 模式的看法 here.
最后,警告:提防任何使用短语“工厂模式”的博客或教程。没有名为“Factory”的单一模式。 Factory 是一种模式,包括 GoF 书籍内外的实例。至少有四种常用的工厂模式。