简介
MacApp Macintosh应用程序框架[App89]总是声明 将工厂方法定义为Class *的抽象操作 DoMakeClass(),其中Class是Product类。
这句话让我想到了有关工厂方法设计模式的命名约定的问题。
期望
我希望看到最佳实践或有用的示例,它们提供明确的工厂方法命名。
由于它可能依赖于某种语言,让我们考虑一组最流行的语言:C#,Java,C ++和JavaScript。
上下文
对于上下文,我建议考虑以下类结构。我们有两个抽象类:Document和Application。应用程序包含文档列表,应该可以创建新文档。应用程序具有工厂方法CreateDocument()
。
由于
答案 0 :(得分:4)
恕我直言,方法名称取决于上下文和正在创建的对象的性质。也许这就是为什么你没有找到任何明确的约定。例如,Create()
方法可能适用于一个上下文,而Open()
或Build()
可能更适合其他上下文。
答案 1 :(得分:0)
没有与此设计模式相关的强有力的约定。最佳做法是使用“Do
”或“Make
”前缀来标记某些语言中的工厂方法,这些语言没有嵌入虚拟或抽象方法(例如,javascript)。