Java设计模式之14 —— 模板模式

模板模式的基本定义是:定义一个操作中的算法框架,而将一些步骤延迟到子类中,使得子类可用改变一个算法的结构,即可重定义该算法发 某些特定步骤。

示例代码如下:

1, 在抽象的父类中定义一系列的特定步骤:其中startUp方法定义为final,使子类不能重写

package modelpattern;

public abstract class AbstractComputer {
    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----------");
}
}

2 定义实现的实体类:在子类中,可用重写特定步骤

package modelpattern;

public class CoderComputer extends AbstractComputer{
    @Override
    protected void login() {
        System.out.println("程序员用账号和密码登录");
    }
}

以及:

package modelpattern;

public class MilitaryComputer extends AbstractComputer{
    @Override
    protected void checkHardWare() {
        super.checkHardWare();
        System.out.println("检查硬件防火墙");
    }
    @Override
    protected void login() {
        System.out.println("进行指纹识别用户验证");
    }

}

3, 在测试类中运行结果:

package modelpattern;

public class Test {
    public static void main(String[] args) {
        AbstractComputer computer = new CoderComputer();
        computer.startUp();
        computer = new MilitaryComputer();
        computer.startUp();
        
    }
}
 4 查看输出的结果:

--------开机  START----------
开启电源
硬件检查
载入操作系统
程序员用账号和密码登录
--------关机  END----------
--------开机  START----------
开启电源
硬件检查
检查硬件防火墙
载入操作系统
进行指纹识别用户验证
--------关机  END----------

猜你喜欢

转载自blog.csdn.net/frank_develpoer/article/details/81453550