Template Method pattern diagram
----------------------------------------------------------------------------------------------------------
Participating roles:
------AbstractClass (abstract class): responsible for implementing template methods and abstract methods that are handed over to subclasses for implementation.
------ConcreteClass (concrete class): The abstract method responsible for the concrete realization of the template method.
------Test (test class)
Specific case:
---AbstractClass:
---ConcreteClass:
---Test:
------------------------------------------------------------------------------------------------------------