Template
The next pattern that we are going to analyze is called Template and it also has a lot in common with the Strategy pattern. Template consists of defining an abstract pseudo class that represents the skeleton of an algorithm, where some of its steps are left undefined. Subclasses can then fill the gaps in the algorithm by implementing the missing steps, called template methods. The intent of this pattern is to make it possible to define a family of classes that are all variations of a similar algorithm. The following UML diagram shows the structure that we just described:
The three concrete classes shown in the previous diagram, extend Template and provide an implementation for templateMethod()
, which is abstract or pure virtual, to use the C++ terminology; in JavaScript this means that the method is left undefined or is assigned to a function that always throws an exception, indicating the fact that the method has to be implemented. The Template pattern can be considered more classically...