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

时间:2013-08-11 08:27:07

标签: design-patterns naming-conventions factory-method

简介

  

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

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

期望

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

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

上下文

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

enter image description here

由于

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

没有与此设计模式相关的强有力的约定。最佳做法是使用“Do”或“Make”前缀来标记某些语言中的工厂方法,这些语言没有嵌入虚拟或抽象方法(例如,javascript)。