模板模式

目标:

  • 第一个设计模式:模板模式

步骤:

  • 第一个设计模式:模板模式

讲解:

我们现在使用抽象类设计一个模板模式的应用,

例如在小学的时候,我们经常写作文,通常都是有模板可以套用的。

假如我现在需要定义新司机和老司机类,新司机和老司机都有开车功能,开车的步骤都一样,只是驾驶时的姿势有点不同,

新司机:开门,点火,双手紧握方向盘,刹车,熄火

老司机:开门,点火,右手握方向盘左手抽烟,刹车,熄火

我们可以将固定流程写到父类中,不同的地方就定义成抽象方法,让不同的子类去重写,

代码如下:

// 司机开车的模板类
public abstract class Driver {
   public void go() {
       System.out.println("开门");
       System.out.println("点火");
     System.out.println("----------------------");
       // 开车姿势不确定?定义为抽象方法
       ziShi();
       System.out.println("刹车");
       System.out.println("熄火");
  }

   public abstract void ziShi();
}

现在定义两个使用模板的司机:

public class NewDriver extends Driver {

   @Override
   public void ziShi() {
       System.out.println("新司机双手紧握方向盘");
  }
}

public class OldDriver extends Driver {
   @Override
   public void ziShi() {
       System.out.println("老司机右手握方向盘左手抽烟...");
  }
}

编写测试类

public class Demo02 {
   public static void main(String[] args) {
       NewDriver nd = new NewDriver();
       nd.go();

       OldDriver od = new OldDriver();
       od.go();
  }
}

运行效果

小结:

  模板模式

    • 模板已经定义了通用架构(共性行为和属性)

    • 使用者只需要关心自己需要实现的功能即可(特殊行为和属性)

  • 主要运用父类和Abstract抽象方法来执行

My模板设计模式的更多相关文章

  1. JAVA设计模式:模板设计模式

    1.模板设计模式,是为了体现继承的作用.它主要的作用就是在类中定义一些公共的方法和标准,而其具体的实现则叫给其子类来根据子类具体的行为来实现:因为模板设计模式中必经还有一些自己的方法不是抽象的方法,只 ...

  2. Template Method 模板设计模式

    什么是模板设计模式 对于不了解的模板设计模式的来说,可以认为如同古代的造纸术一样,纸所以成型,取决于用了模板的形状,形状又由镂空的木板组成,而你想要造什么纸,又取决于你使用什么材料. 上面提到了两个关 ...

  3. C#模板设计模式使用和学习心得

    模板设计模式: 模版方法模式由一个抽象类和一个(或一组)实现类通过继承结构组成,抽象类中的方法分为三种: 抽象方法:父类中只声明但不加以实现,而是定义好规范,然后由它的子类去实现. 模版方法:由抽象类 ...

  4. java模板设计模式

    1.概述 模板设计模式定义:定义一个操作中的算法骨架,将步骤延迟到子类中. 模板设计模式是一种行为设计模式,一般是准备一个抽象类,将部分逻辑以具体方法或者具体的构造函数实现,然后声明一些抽象方法,这样 ...

  5. Java 设计模式 ------ 模板设计模式

    模板设计模式主要来源于生活中有一些事情是有模板可以遵循的.举两个生活中的例子,如泡茶和泡咖啡,看一看. 泡茶有以下四个步骤:  1, 烧开水;  2 把茶放到水杯中; 3,倒入开水; 4, 加糖. 泡 ...

  6. Java中的模板设计模式,太实用了!

    顾名思义,模板设计模式就是将许多公用的常用的代码封装成一个模板,我们只需要实现不同的业务需求的代码,然后和模板组合在一起,那么就得到完整的逻辑. 在我们的日常开发中,常用的模板模式有两种实现方式:继承 ...

  7. Thread中run和start方法的模板设计模式

    创建一个Thread需要继承Thread重写run方法或者实现Runnable接口中的run方法,其实两者都是一样因为Thread也继承了Runnable接口. 实现了run方法,但是启动确实用sta ...

  8. Java设计模式——模板设计模式

    模板设计模式 1.模板模式简介 模板模式(Template ):模板方法模式是类的行为模式.准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑 ...

  9. 设计模式之 - 模板模式(Template Pattern)

    引入:这几天在看一本讲spring源码的书<SPRING技术内幕>里面在讲加载配置文件的时候,可以有不同的加载方式,如根据文件系统目录加载配置文件(FileSystemXmlApplica ...

随机推荐

  1. Spring5框架学习笔记(详细)

    目录 01 Spring框架概述 02 IOC容器 IOC概念和原理 IOC BeanFactory接口 IOC操作 Bean管理(概念) IOC操作 Bean管理(基于xml方式) IOC操作 Be ...

  2. mysql设置定时任务-渐入佳境

    --作者:飞翔的小胖猪 --创建时间:2021年2月26日 前言 mysql中设置定时任务,需要先打开调度才能实现自动执行任务.调度功能开启后过再配合存储过程或事件等组件实现特定或定时的任务实现. 步 ...

  3. JavaWeb-JDBC-Mybatis-Junit-Maven-Lombok

    Java与数据库 初识JDBC JDBC是什么? JDBC英文名为:Java Data Base Connectivity(Java数据库连接),官方解释它是Java编程语言和广泛的数据库之间独立于数 ...

  4. Pandas:从CSV中读取一个含有datetime类型的DataFrame、单项时间数据获取

    前言 有一个CSV文件test.csv,其中有一列是datetime类型,其他列是数值列,就像下边这样: 问题 1.读取该CSV文件,把datetime列转换为datetime类型,并将它设置为索引列 ...

  5. 基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1

    基于Kubernetes/K8S构建Jenkins持续集成平台(上)-1 Jenkins的Master-Slave分布式构建 什么是Master-Slave分布式构建 Jenkins的Master-S ...

  6. git命令合集

    ##快捷键 ##一. 快捷键 1. 清屏快捷键 control+L 2. vim快捷操作 * control+b 往上翻页 * Control+f 往下翻页 * shift+g 回到末尾 3. oh ...

  7. CentOS下mysql常用命令

    CentOS下mysql常用命令   1.开启和关闭 1.1.开启 service mysql start 1.2.关闭 service mysql stop 1.3.重启 service mysql ...

  8. Hive框架

    1.什么是Hive? Hive 是基于Hadoop之上的数据仓库.2.什么是数据仓库? 数据仓库其实就是一个数据库 数据仓库是一个面向主题的,集成的,不可更新的,随时间不变化的数据集合,它用于支持 企 ...

  9. 设计模式在 Spring 中的应用

    Spring作为业界的经典框架,无论是在架构设计方面,还是在代码编写方面,都堪称行内典范.好了,话不多说,开始今天的内容. spring中常用的设计模式达到九种,我们一一举例: 第一种:简单工厂 又叫 ...

  10. centos 在线安装 docker

    镜像下载.域名解析.时间同步请点击 阿里巴巴开源镜像站 在新主机上首次安装Docker Engine之前,需要设置Docker存储库.之后,您可以从存储库安装和更新Docker. 设置存储库 安装yu ...