模板方法模式定义:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
模板模式解决了什么问题:定义一个算法模板,同时保护了模板步骤不被更改,同时可以复用代码, 由子类提供实现。
钩子:是一种被声明在抽象类中的方法,但只有空的或者默认的实现。钩子的存在,可以让子类有能力对算法的不同点进行挂钩。
以及好莱坞原则:高层组件调用底层组件,底层组件不应该调用高层组件。
这个模式的使用场景: Java里的sort方法,必须排序类必须实现Comparable接口的compareTo方法比较大小。就能按照sort方法来实现了。