模板方法模式 - 命名约定

时间:2013-01-28 14:26:25

标签: java naming-conventions template-method-pattern

我有一个名为 RenderableEntity 的抽象类。

我有一个公共方法render(),它有一些围绕抽象保护render()方法的逻辑。我应该如何命名这个抽象的render()方法。是否有某种惯例,例如。保护方法doRender()的{​​{1}},makeRender()

render()

编辑:我知道这个代码段无法编译。我只是想知道如何命名这个抽象方法,因为我没有相同名称和相同参数的方法。

3 个答案:

答案 0 :(得分:14)

首先:如果模板方法用于独占使用,则只考虑这些方法的特殊命名。此外,您应该评论这些方法,说明模板方法使用它们,并且应该考虑到这些用法进行任何修改。

构成模板方法中可替换步骤的方法通常称为“钩子”方法。你有时会看到它们最后用“Hook”命名。

在您的示例中,您可能希望将其称为renderHook(),但是如果您可以更详细地了解它在模板方法render()中执行的更具描述性的任务。

我已经看过doXXX(),虽然它主要是在一对一的模板到钩子关系时。

可能的建议。对于模板方法stuff()

  • 如果stuff()主要是围绕单个钩子的简单控制逻辑,请将钩子命名为doStuff()(在上面的示例中似乎就是这种情况)

  • 如果stuff()编排了多个挂钩,请使用Hook后缀单独命名,并且不要将任何命名为与模板相同(在这种情况下) ,应该没有stuffHook()方法。

答案 1 :(得分:0)

没有关于它的约定。但我更愿意看到更有意义的名字。例如。 forceRenderrenderNowrenderImmideately或类似内容,表明它的呈现方式与render不同。

答案 2 :(得分:0)

模板方法模式在命名约定方面没有任何此类指南。但是请给出适当的名称,以便明确解释方法的意图,并且维护将来更容易。