我甚至不确定这个问题是否有合适的设计答案,但值得一问。。。我有一个抽象类(servlet),它通过processResults方法(抽象)和onResultsReceived(非抽象)从一些客户端获取数据
public abstract class dataServlet implements HttpServlets {
protected onDataReceived(){//blah blah}
public abstract void processData();
}
I onDataReceived方法我正在做一些常见的事情,这些事情对于processData方法的所有实现都是必要的。如果明天有人将添加dataServlet的新实现,我希望确保他会在他的processData实现中调用onDataReceived。有什么方法,已知的设计可以做到这一点吗?
听起来应该考虑模板方法模式,因为它强制执行特定的执行顺序,而不需要派生类的作者调用stuff。
模式是:
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() { ... }
}