模板方法模式 模式引入 问题描述 回想小时候的随堂测验,老师在黑板上抄题目,同学们在下面先抄题目,再做答案。经常有同学眼神不好,会把题目抄错。 但是在考试时,就不会出现这种情况。因为大家拿到的考试试卷都是一样的。这里的考试试卷类似于一个模板,提取了相同的部分。 模式定义 定义了一个操作中的算法的骨架,将一些步骤延迟到子类中。 子类可以按需重写方法实现,但调用将以抽象类中定义的方式进行。 问题分析 尽可能减少所有重复的代码。 模式介绍 解决方案 对于不同的学生,只有给出的答案不同,其他内容全都一样; 将所有的重复代码都上升到父类,使其称为子类的模板 --> 将公共的试题代码写到父类,试题和答案都继承于它; 只将答案改成一个虚方法,给继承的子类重写;