The template method design pattern
Sometimes when we implement some algorithm or a family of algorithms, we define a common skeleton. Then later, the different implementations deal with the specifics of each method in the skeleton. The template method design pattern allows us to achieve what we mentioned previously. Its purpose is to:
Note
Defer algorithm steps to subclasses using template methods.
The template method design pattern seems really natural to object-oriented programming. Whenever polymorphism is used, this actually represents the design pattern itself. Usually, the template method is implemented using abstract methods.
Class diagram
The template method design pattern is suitable for implementing frameworks. A typical thing here is that algorithms usually perform the same set of steps, and then these steps are implemented differently by different clients. You can come up with various possible use cases.
For our example, let's imagine that we want to write an application that will...