Template Method Pattern Add comment to Wiki View in Wiki Edit Wiki page Printable Version

The Template Method Pattern abstracts away the details of several algorithms. The generic part of an algorithm is contained within a base class. Particular implementation details are captured within base classes. The generic pattern of classes involved looks like this:


In this example, Accumulator captures the essence of the accumulation algorithm. The base classes Sum and Product provide particular customised ways to use the generic accumulation algorithm.

The resulting output is:

In this particular case, you could use Groovy's inject method to achieve a similar result using Closures:

Thanks to duck-typing, this would also work with other objects which support an add (plus() in Groovy) method, e.g.:

We could also do the multiplication case as follows:

Using closures this way looks more like the Strategy Pattern but if we realise that the built-in inject method is the generic part of the algorithm for our template method, then the Closures become the customised parts of the template method pattern.



Results of your search request can come from various sources: the Groovy website itself, the JIRA issues, the API documentation, as well as a few other interesting Groovy-related blogs.

  By  -  pages  -  views  - last modified