Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/366.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 强制执行派生实现来做一些事情,最佳实践是什么?_Java_Oop_Design Patterns - Fatal编程技术网

Java 强制执行派生实现来做一些事情,最佳实践是什么?

Java 强制执行派生实现来做一些事情,最佳实践是什么?,java,oop,design-patterns,Java,Oop,Design Patterns,我甚至不确定这个问题是否有一个合适的答案,但值得一问。。。 我有一个抽象类(servlet),它使用processResults方法(抽象)和onResultsReceived(非抽象)从一些客户机获取数据 我正在做一些对于processData方法的所有实现都是必需的普通事情。如果明天有人要添加dataServlet的新实现,我想确定他会在processData实现中调用onDataReceived。 有没有什么方法,已知的设计可以做到这一点 >听起来好像你应该考虑它,因为它强制执行一个特定的

我甚至不确定这个问题是否有一个合适的答案,但值得一问。。。 我有一个抽象类(servlet),它使用processResults方法(抽象)和onResultsReceived(非抽象)从一些客户机获取数据

我正在做一些对于processData方法的所有实现都是必需的普通事情。如果明天有人要添加dataServlet的新实现,我想确定他会在processData实现中调用onDataReceived。
有没有什么方法,已知的设计可以做到这一点

>听起来好像你应该考虑它,因为它强制执行一个特定的执行顺序,而不需要派生类的作者调用它。

模式是:

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() { ... }
}

<>听起来好像你应该考虑它,因为它强制执行一个特定的执行顺序,而不需要派生类的作者调用它。

模式是:

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() { ... }
}

对,忘了。非常感谢。对,忘了。非常感谢。