Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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_Design Patterns - Fatal编程技术网

Java 硬编码方法,仅存在于超类中被重写

Java 硬编码方法,仅存在于超类中被重写,java,design-patterns,Java,Design Patterns,最近我不得不学习一门课,它的方法和这门课相似 public boolean checkSomeThing() { return true; } 此函数在另一个执行复杂实例化的私有函数体内使用。起初我认为它可能是一个复活节彩蛋,但后来我在方法checkSomething()上读到了javadoc,上面说: “重写此函数以更改某些内容blabla” 读完这篇文章后,我意识到到底发生了什么。这是一种非常优雅和简洁的方式,可以访问一段代码中无法访问的变量 所以我的问题是这个把戏的名字,模式或者叫什么?

最近我不得不学习一门课,它的方法和这门课相似

public boolean checkSomeThing() { return true; }
此函数在另一个执行复杂实例化的私有函数体内使用。起初我认为它可能是一个复活节彩蛋,但后来我在方法checkSomething()上读到了javadoc,上面说:

“重写此函数以更改某些内容blabla”

读完这篇文章后,我意识到到底发生了什么。这是一种非常优雅和简洁的方式,可以访问一段代码中无法访问的变量

所以我的问题是这个把戏的名字,模式或者叫什么?如果说我正在构建的类打算进行扩展,那么使用它是一件好事吗?

我会说您的意思是“模板方法模式”

也许有一个建议:
如果每个子类都必须重写方法,那么它应该是抽象的。

我想你有点误解了重写方法?为什么?请详细说明。@EvdzhanMustafa至于这是一项好技术;像所有的技术一样,在适当的环境下谨慎使用,这是非常有用的。过度使用它,或者在没有必要的地方,它只是噪音。它的缺点是,在维护过程中,该方法的过度隐藏可能会对代码的读者造成影响。@OliverWatkins:这可以用来破坏Liskov替换,但它本身不会破坏它。正如克里斯所说,任何技术都应该只在有意义的地方应用。这是一种非常常用的模式,用于为派生类提供可扩展性。否则,这些类将需要覆盖更多的逻辑并复制基类的代码,这将破坏许多其他原则(包括Liskov替换)。我收回我说的话。