硬编码方法,仅存在于超类中的覆盖

Evd*_*afa 2 java design-patterns

最近我不得不上一个类,这个方法类似于这个

public boolean checkSomeThing() { return true; }
Run Code Online (Sandbox Code Playgroud)

此函数在执行复杂实例化的另一个私有函数的主体内使用.起初我以为它可能是一个复活节彩蛋,但后来我读了方法checkSomething()上的javadoc说:

"覆盖此功能以改变一些blabla".

读完之后,我意识到实际发生了什么.它是一种非常优雅和整洁的方式,可以访问一段代码中的变量,否则无法访问.

所以我的问题是这个技巧,模式或其他任何名称的名称是什么?使用它是否是一件好事,当我说要建造的课程是为了扩展时?

Jor*_*rge 5

我会说你的意思是"模板方法模式" http://en.wikipedia.org/wiki/Template_method_pattern

也许有一个建议:如果每个子类都必须覆盖该方法,那么它应该是抽象的.