Type : Behavioral Design Pattern Summary Template method pattern defines some steps or sequences of procedure and defers implementations of the procedures to the subclasses to implement. Details Template method uses in real life is very common. For instance we want to order some product online, first we have to select product and then add it to cart, then checkout. Another example would be when we go to a movie theater, we first decide the show, buy the ticket and that go to the respective screen to enjoy the movie, and finally leave the theater. When the work can broken in to sub tasks and order of the tasks are important Template method helps in maintaining that order. Another example would be our day to day routine. We can break the day in several sequence of tasks that we want to carry out. DayRoutine : Abstract class which declares some tasks like wakeup(), doBreakFast() gotoBed() etc. To maintain the order it also has a final method