The Template Method pattern in the real world
Let's take a very easy-to-understand scenario to implement the Template method pattern. Imagine the case of a travel agency, say, Dev Travels. Now how do they typically work? They define various trips to various locations and come up with a holiday package for you. A package is essentially a trip that you, as a customer, undertakes. A trip has details such as the places visited, transportation used, and other factors that define the trip itinerary. This same trip can be customized differently based on the needs of the customers. This calls for the Template Method pattern, doesn't it?
Design Considerations:
For the preceding scenario, based on the UML diagram, we should create an
AbstractClass
interface that defines a tripThe trip should contain multiple abstract methods that define the transportation used, places visited on
day1
,day2
, andday3
, assuming that it's a three-day long weekend trip, and also define the return journeyThe
itinerary()
...