天天看点

Java 模板方法模式模板方法模式

文章目录

  • 模板方法模式
    • 概述
    • 基本实现

模板方法模式

概述

  • 程序的执行流程:
    • 检查代码的正确性
    • 链接相关的类库
    • 编译相关代码
    • 执行程序
  • 模板方法模式主要是封装流程,将某个固定的流畅封装到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-----
           

继续阅读