0

この質問に対する答え\適切な設計があるかどうかさえわかりませんが、尋ねる価値があります...私は(とりわけ)processResultsメソッド(抽象)を使用して一部のクライアントからデータを取得する抽象クラス(サーブレット)を持っています。 onResultsReceived (非抽象)

public abstract class dataServlet implements HttpServlets {
      protected onDataReceived(){//blah blah}
      public abstract void processData();
}

私は onDataReceived メソッドで、processData メソッドのすべての実装に必要ないくつかの一般的なことを行っています。明日誰かが dataServlet の新しい実装を追加する場合、彼が processData 実装で onDataReceived を呼び出すことを確認したいと思います。そうするための既知の設計方法はありますか?

4

1 に答える 1

6

派生クラスの作成者が何かを呼び出す必要なく、特定の実行順序を強制するため、テンプレート メソッド 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() { ... }
}
于 2013-02-05T12:16:41.813 に答える