我有一个名为RenderableEntity的抽象类。
我有一个公共方法render(),它有一些围绕抽象受保护的render()方法的逻辑。我应该如何命名这个抽象的render()方法。有什么约定吗?doRender(),makeRender()用于受保护的方法render()
public abstract class RenderableEntity extends Entity {
private boolean visible;
public void render(){
if(visible){
render();
}
}
protected abstract void render();
}编辑__:我知道这个片段不编译。我只是想知道如何命名这个抽象的方法,因为我不能有相同的名称和相同的参数的方法。
发布于 2013-01-28 14:40:17
首先:只有当这些方法被模板方法独占使用时,才考虑对这些方法进行特殊命名。此外,您应该注释这些方法,说明它们被模板方法使用,并且任何修改都应该考虑到这种用法。
在模板方法中组成可替换步骤的方法通常称为“钩子”方法。有时你会看到它们在结尾用“钩子”命名。
在您的示例中,您可能希望将其命名为renderHook(),但如果您能够获得它在模板方法render()中执行的任务的更具体的内容,则会更具有描述性。
我见过doXXX()的使用,虽然它主要是当有一对一的模板到挂钩的关系时。
一个可能的建议。对于模板方法stuff()
stuff()主要是围绕单个钩子的简单控制逻辑,那么将钩子命名为doStuff() (在上面的示例中似乎就是这样)stuff()编排了几个钩子,请用Hook后缀独立命名它们,并且不要将它们命名为与模板相同的名称(在本例中,不应该有stuffHook()方法。发布于 2013-01-28 14:33:40
关于这件事没有任何约定。但我更希望看到更有意义的名字。例如,forceRender、renderNow、renderImmideately或类似的东西,它们告诉我们,它呈现的方式与render有所不同。
发布于 2013-01-28 14:35:27
模板方法模式在命名约定方面没有任何这样的指南。但一定要给出适当的名称,这样才能清楚地解释方法的意图和维护的未来就更容易了。
https://stackoverflow.com/questions/14564162
复制相似问题