强制派生实现执行某些操作,最佳实践是什么



我甚至不确定这个问题是否有合适的设计答案,但值得一问。。。我有一个抽象类(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() { ... }
}

相关内容

最新更新