aio*_*obe 7 java oop inheritance
有时当我扩展自己的一个类时,我想(为了子类的目的)在超类中的方法中"注入"一行或两行代码.
在这些情况下,我有时会添加一个空的受保护方法的调用,以便子类重写.
public void superClassMethod() {
// some fairly long snippet of code
doSubclassSpecificStuff();
// some other fairly long snippet of code
}
// dummy method used for overriding purposes only!
protected void doSubclassSpecificStuff() {
}
Run Code Online (Sandbox Code Playgroud)
当我在同一个班级多次这样做时,我必须说它看起来很尴尬/丑陋所以我的问题:
我能想到的唯一选择是使用类似命令模式的东西setMiddleOfMethodHandler(SomeRunnableHandler),然后调用handler.doSubclassSpecificStuff()而不是使用伪方法.我看到它有一些缺点,例如无法触及受保护的数据.