refactor: Declares the template method as final (Issue 1099) (#2057)

This commit is contained in:
Dominik Gruntz
2022-10-10 19:19:04 +03:00
committed by GitHub
parent 8a7c7b6f21
commit 67f01d43aa
4 changed files with 20 additions and 9 deletions
+5 -1
View File
@@ -39,6 +39,10 @@ Wikipedia says
**Programmatic Example**
Let's first introduce the template method class along with its concrete implementations.
To make sure that subclasses dont override the template method, the template method (in our case
method `steal`) should be declared `final`, otherwise the skeleton defined in the base class could
be overridden in subclasses.
```java
@Slf4j
@@ -50,7 +54,7 @@ public abstract class StealingMethod {
protected abstract void stealTheItem(String target);
public void steal() {
public final void steal() {
var target = pickTarget();
LOGGER.info("The target has been chosen as {}.", target);
confuseTarget(target);