我甚至不确定这个问题是否有答案\应得设计,但值得一提...... 我有一个抽象类(servlet)从一些客户端获取数据(其中包括)processResults方法(抽象)和onResultsReceived(非抽象)
public abstract class dataServlet implements HttpServlets {
protected onDataReceived(){//blah blah}
public abstract void processData();
}
我onDataReceived方法我正在为processData方法的所有实现做一些必要的常见事情。如果明天有人会添加dataServlet的新实现,我想确保他将在他的processData实现中调用onDataReceived。 有没有办法,已知设计这样做?
答案 0 :(得分:6)
听起来你应该考虑template method pattern,因为它强制执行特定的执行顺序,而不需要派生类的作者调用东西。
模式是:
abstract class Base {
public doActivity() {
doCommonStuff();
doSpecificStuff();
doOtherCommonStuff();
doOtherSpecificStuff();
}
protected abstract void doSpecificStuff();
protected abstract void doOtherSpecificStuff();
private final void doCommonStuff() { ... }
private final void doOtherCommonStuff() { ... }
}