我将这个抽象类命名为 RenderableEntity 。
我有一个公共(public)方法 render()
,它有一些围绕抽象保护 render()
方法的逻辑。我应该如何命名这个抽象的 render()
方法。是否有某种约定,例如。 doRender()
, makeRender()
用于 protected 方法 render()
?
public abstract class RenderableEntity extends Entity {
private boolean visible;
public void render(){
if(visible){
render();
}
}
protected abstract void render();
}
编辑:我知道这段代码无法编译。我只是想知道如何命名这个抽象方法,因为我不能有具有相同名称和相同参数的方法。
最佳答案
第一:只有在模板方法独占时,才考虑对这些方法进行特殊命名。此外,您应该评论这些方法,说明它们由模板方法使用,并且在进行任何修改时都应牢记该用法。
构成模板方法中可替换步骤的方法通常称为“ Hook ”方法。有时您会看到它们的名称末尾带有“Hook”。
在您的示例中,您可能希望将其称为 renderHook()
,但如果您可以更具体地了解它在模板方法 render()中执行的任务
,这将更具描述性。
我见过 doXXX()
的使用,尽管它主要是在存在一对一的模板到 Hook 关系时使用。
一个可能的建议。对于模板方法 stuff()
:
如果
stuff()
主要是围绕单个 Hook 的简单控制逻辑,则将 Hook 命名为doStuff()
(在您的示例中似乎就是这种情况以上)如果
stuff()
编排了几个钩子(Hook),用Hook
后缀独立命名它们,不要将它们命名为 任何与模板相同(在这种情况下,应该没有stuffHook()
方法。
关于java - 模板方法模式 - 命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14564162/