The Template Method pattern is ubiquitous in the wild. It provide a clear enterpoint for the application design. This clear enterpoin is analogous to a superclass(which is an abstract class). The superclass contains a template method that is formed by several smaller methods. Each small method completes one step of an algorthim.
Thanks to this superclass design, the subclass couldn't change the sequence of the template method. It is helpful to decoupe the superclass and subclass. "Don't call me, I'll call you." this hollywood principle works very well in the template method pattern.
sometimes, one step method in the superclass's template method maybe a if-else scenario. the first situation is the subclass wants to run this specific step, it should proivde an implemtation of that method, likewise, if this steop is uneccesarry in the subclass, the subclass could choose ignoring this step. This feature of the template method pattern is named as hook.