既然是行为型模式那么就先列举个例子
事例:描述煮粥的流程。
1.向锅里面加水 2.加工米(洗米,加一些别的东西等等) 3.下米 4,烧水
米只是个抽象的类型;无论煮什么样的粥,都需要1,3,4,步骤,区别在第3步,将1,3,4放在父类实现子类实现3,从而提高了代码的复用性,和扩展性;
定义:定义一个操作中算法的骨架,而将一些步骤延迟到子类中。模板方法使子类可以重定义算法的某些特定步骤而不改变该算法的结构。
注意:为了避免子类对父类方法的重写,所有的模版方法都加final,为了对子类的更加灵活,从而有类钩子函数,子类对钩子函数的重写,提高了代码的复用性。钩子函数更像是介于模版方法和子类实现方法之间的模版方法,写死的话太死板,写活的话,代码量又太大(子类),于是钩子函数很好的解决了这个问题,半死不活的模版方法。
娱乐圈原则由大佬确定,演员为好莱坞提供服务,不能改变规则。