Answer:
Below are the main differences between these two design patterns: -
Defines outline for algorithms and allows sub class to override some steps. Efficient in terms of less redundant code. Depends on super class for methods.
Uses object composition to provide variety of algorithm implementation.
Flexible in terms of allowing users to change algorithm at run time. All the algorithms can be itself implemented.
Regards, Do visit our .NET design pattern and Java J2EE design pattern interview questions.