# 本人学习时的笔记,有错必改,不喜勿喷 #
1.1 动机
在软件构建过程中,对于某一项任务,它常常有稳定的整体操作结构,但各个子步骤却有很多改变的需求,或者由于固有的原因(比如框架与应用之间的关系)而无法和任务的整体结构同时实现。
1.2 模式定义
定义一个操作中的算法的骨架 (稳定),而将一些步骤延迟(变化)到子类中。Template Method使得子类可以不改变(复用)一个算法的结构即可重定义(override 重写)该算法的某些特定步骤。
1.3 案例
我们社畜的早上都是:起床、吃饭、出门上班,但是每天处理这些事情的具体细节可能有所不同,比如今天我起床是左脚先下床的,吃饭吃的是面包,而出门上班选择的是骑单车,明天可能就是右脚先下床,吃面条,走路上班,那么步骤代码实现是这样子的:
我们发现,如果还有后天,大后天,那main函数的代码将越来越冗余。
但是我们还会发现,这些步骤都是固定的,通过使用模板方法,我们可以将这些步骤先固定好,实现“不要你调用我,让我来调用你”的思想。
代码如下: