(三)设计模式之模板方法模式

一 模板方法理解

实验代码地址:https://github.com/allhuo/deepin-java.git

本文实验代码:

模块名:chapter_001  

包名:com.lizhangjun.part05

现在某电脑公司需要设计两个电脑模型给富士康代工量产,模型都能够开机,显示启动界面,进入桌面,关机操作,只是模型功能的具体实现不一样。

1.1 抽象电脑模型模板类

public abstract class AbstractComputerModel {
    
    //启动
    protected abstract void start();
    
    //进入启动界面
    protected abstract void show();
    
    //展示电脑桌面
    protected abstract void desktop();
    
    //关闭电脑模型
    protected abstract void shutdown();
    
    public void templateRun(){
        //step1: 启动电脑模型
        start();
        //step2: 进入启动界面
        show();
        //step3: 展示电脑桌面
        desktop();
        //step4: 关闭电脑模型
        shutdown();
    }
}

1.2 模型具体实现

public class DellComputerModel extends AbstractComputerModel{
    @Override
    protected void start() {
        System.out.println("长按电源键启动!");
    }

    @Override
    protected void show() {
        System.out.println("显示戴尔logo");
    }

    @Override
    protected void desktop() {
        System.out.println("显示戴尔电脑自定义初始桌面");
    }

    @Override
    protected void shutdown() {
        System.out.println("长按电源键关机!");
    }
}
public class MacComputerModel extends AbstractComputerModel{
    @Override
    protected void start() {
        System.out.println("按一下电源键启动!");
    }

    @Override
    protected void show() {
        System.out.println("显示苹果logo");
    }

    @Override
    protected void desktop() {
        System.out.println("显示苹果电脑自定义初始桌面");
    }

    @Override
    protected void shutdown() {
        System.out.println("按一下电源键关机!");
    }
}

1.3 电脑设计公司向富士康演示模型

public class Client {

    public static void main(String[] args) {
        AbstractComputerModel model1 = new DellComputerModel();
        AbstractComputerModel model2 = new MacComputerModel();
        //展示模型
        model1.templateRun();
        model2.templateRun();
    }
}

二 模板方法总结

这里核心方法是templateRun(),它将一般方法按照一定的执行逻辑组织在一起,无需修改执行逻辑结构,即可实现执行逻辑的重定义。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值