设计模式--模板模式

tech2024-07-17  65

文章导航

定义示例

定义

模板模式: 定义一个骨架, 允许子类为一个或多个步骤提供实现.

可一次性实现实现一段逻辑的不变部分,将可变部分留给子类实现避免代码重复, 将各个类的公共行为提取到一个统一父类上

示例

以完成作业,然后老师抽查作业为例子, 想思路,拿笔本,做作业等步骤都是一样,将不同老师检查作业方式不同作为钩子函数

创建一个作业工作类

public abstract class Job { protected final void doHomework() { // 想思路 this.wantThinking(); // 拿笔和本子 this.grabPenAndNotebook(); // 写作业 this.finishHomework(); // 是否检查作业 if (isTestAssignments()) { this.testAssignments(); } } /** 交给之类实现 */ abstract void testAssignments(); protected boolean isTestAssignments() { return true; } final void wantThinking(){ System.out.println("想思路"); } final void grabPenAndNotebook(){ System.out.println("拿笔和本子"); } final void finishHomework(){ System.out.println("完成作业"); } }

创建一个检查作业的老师类,实现父类的预留方法

public class MathTeacher extends Job { @Override void testAssignments() { System.out.println("数学老师检查作业!"); } }

测试代码

public class Test { public static void main(String[] args) { MathTeacher mathTeacher = new MathTeacher(); mathTeacher.doHomework(); } }

执行结果

最新回复(0)