Define the skeleton of an algorithm in an operation, deferring some steps to sub-classes.
Template Method lets sub-classes redefine certain steps of an algorithm without letting them to change the algorithm's structure.