TEMPLATE METHOD Pattern
Context
- An algorithm is applicable for multiple types.
- The algorithm can be broken down into primitive operations.
The primitive operations can be different for each type
- The order of the primitive operations doesn't depend on the type