工厂方法的命名约定是什么?

War*_*ock 6 design-patterns naming-conventions factory-method

介绍

MacApp Macintosh应用程序框架[App89]始终声明将工厂方法定义为Class*DoMakeClass()的抽象操作,其中Class是Product类.

这句话让我想到了有关工厂方法设计模式的命名约定的问题.

期望

我希望看到最佳实践或有用的示例,它们提供明确的工厂方法命名.

由于它可能依赖于一种语言,让我们考虑一组最流行的语言:C#,Java,C++和JavaScript.

上下文

对于上下文,我建议考虑以下类结构.我们有两个抽象类:Document和Application.应用程序包含文档列表,应该可以创建新文档.应用程序有一个工厂方法CreateDocument().

在此输入图像描述

谢谢

Dav*_*rne 5

恕我直言,方法名称取决于上下文和所创建对象的性质。也许这就是为什么您没有找到任何明确约定的原因。例如,Create()方法可能是正确的一个方面,同时Open()Build()可能在其他更合适。

  • 实际上,我不需要此约定,因为我可以成功地没有它:)我只是想知道命名约定是否存在。但是作为回应,我仅看到有关上下文,语言等的问题……我希望看到最佳实践或有用的示例。现在我相信,没有与此设计模式相关的强常规。最佳实践是使用“ Do”或“ Make”前缀在某些语言中标记工厂方法,这些语言没有嵌入虚拟或抽象方法(例如javascript)。我认为,我的问题应该重新表述,以使其更加清晰:) (3认同)