所以我正在阅读《设计模式》一书,以查找有关工厂模式的一些详细信息。我正在阅读有关实现的两种主要变体:
为什么我应该避免为工厂中的每种类型实现一个静态方法?对我来说,这与第二种方法类似,但由于自动完成而更好(当您不必根据 .txt 或其他内容中的字符串类型重新实例化类时)。我什至可以将不同的参数传递给不同的类型,这在两种实现中都是不可能的。
问候
没有人阻止你这样做。抽象工厂围绕内聚方法划定了界限。它说:
“如果你想为这个概念实现一个工厂,就必须实现这些方法。”
所以这些方法在含义上是相关的。 如果您仔细查看 dofactory 站点示例 中的 UML 图,就会发现:
如果你有一个工厂实现,它不会随机实现每个产品的创建。产品的组合很重要。客户根据条件选择具体工厂一次,但所选择的工厂多次创建产品。您决定一次并创建多次。但使用工厂方法,每次你想要创建一个产品时,你必须决定“如何”。