'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 书籍内外的实例。至少有四种常用的工厂模式。