O'Reilly logo

Learning PHP Design Patterns by William Sanders

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 9. The Template Method Pattern

It is easy to study the rules of overloading and of templates without noticing that together they are one of the keys to elegant and efficient type-safe containers.

Bjarne Stroustrup

All the great legends are Templates for human behavior. I would define a myth as a story that has survived.

John Boorman

I work out the other bits, too, but I need to know what I look like, very early on. And then it’s like a template; I’ll fill that person out. If I get that out of the way, then I’m all right.

Dame Judith Dench

What Is the Template Method Pattern?

First of all, you need to differentiate between the Template Method as a design pattern and the templateMethod()—a class method—used within a Template Method pattern. The templateMethod() is a concrete method within an abstract class. It orders the sequence of abstract methods, leaving the implementations up to a concrete class. At its core, the Template Method defines the skeleton of an algorithm in an operation while the exact implementations are left up to the concrete classes.

The good thing about the Template Method is that it is relatively small and easy to implement. A single abstract and concrete class is all you need, as shown in Figure 9-1.

Template Method class diagram
Figure 9-1. Template Method class diagram

One way to think of the template method operation in the abstract class is as an arranger of primitive operations. (I will ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required