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----------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值