The template method pattern is a behavioral design pattern that defines the program skeleton of an algorithm in an operation, deferring some steps to subclasses.
Hello !
I am Neha Suwal
http://jyaasa.comCopyright 2016. Jyaasa Technologies.
Associate Software Engineer
Jyaasa Technologies
http://jyaasa.comCopyright 2016. Jyaasa Technologies.
Gang of Four Definition:
“Define a skeleton of an algorithm in an operation,
deferring some steps to subclasses. It lets subclasses
redefine certain steps of an algorithm without changing its
subclasses.”
Template Method
http://jyaasa.comCopyright 2016. Jyaasa Technologies.
That means, instead of having a huge if/switch/ case statement
somewhere to control what happens, Template Method lets object itself
determine what happens by using a method that all siblings inherit but
implement in their own way.
What does that mean?
http://jyaasa.comCopyright 2016. Jyaasa Technologies.
●`template_method` calls `step_one` method, `step_two` method and
`step_three` method
●`step_two` is a hook method. I.e It is declared in base class and
then defined in subclasses
http://jyaasa.comCopyright 2016. Jyaasa Technologies.
Where to use?
●A class has more than one method that each contains an
if/switch/case statement with 3 or more possibilities.
●A class which has an if/switch/case statement that can have new
possibilities as conditions in the future.
http://jyaasa.comCopyright 2016. Jyaasa Technologies.
Example
OUTPUT:
MOO MOO
OINK OINK
QUACK QUACK
http://jyaasa.comCopyright 2016. Jyaasa Technologies.
Example
OUTPUT:
http://jyaasa.comCopyright 2016. Jyaasa Technologies.
●No code duplication
●Since uses inheritance code is reused
●Lets subclasses decide how to implement steps in an algorithm.
Advantage
http://jyaasa.comCopyright 2016. Jyaasa Technologies.
●Understanding the sequence of flow
●Problem in maintenance
Disadvantage