文章目录
- 模板方法模式
-
- 概述
- 基本实现
模板方法模式
概述
- 程序的执行流程:
- 检查代码的正确性
- 链接相关的类库
- 编译相关代码
- 执行程序
- 模板方法模式主要是封装流程,将某个固定的流畅封装到final函数中,并且让子类能够定制这个流程中的某些步骤,提高代码的复用率。
角色介绍
- 抽象模板类:封装定义流程
- 具体模板类:实现具体步骤
基本实现
抽象类
public abstract class AbsComputer {
protected void powerOn() {
System.out.println("开机");
}
protected void checkHardware() {
System.out.println("硬件检查");
}
protected void loadOS() {
System.out.println("加载系统");
}
protected void login() {
System.out.println("登录");
}
public final void startUp() {
System.out.println("-----开机 start-----");
powerOn();
checkHardware();
loadOS();
login();
System.out.println("-----开机 end-----");
}
}
具体类
//普通电脑
public class NormalComputer extends AbsComputer {
@Override
protected void login() {
System.out.println("可以直接登录");
}
}
//专用电脑
public class DedicatedComputer extends AbsComputer {
@Override
protected void checkHardware() {
super.checkHardware();
System.out.println("检查硬件防火墙");
}
@Override
protected void login() {
System.out.println("指纹人脸识别登录");
}
}
使用
public class Demo {
public static void main(String[] args) {
AbsComputer normalComputer = new NormalComputer();
normalComputer.startUp();
System.out.println("\n");
AbsComputer dedicatedComputer = new DedicatedComputer();
dedicatedComputer.startUp();
}
}
-----开机 start-----
开机
硬件检查
加载系统
可以直接登录
-----开机 end-----
-----开机 start-----
开机
硬件检查
检查硬件防火墙
加载系统
指纹人脸识别登录
-----开机 end-----