模板模式(templete)

  • 模板模式定义
  • 举例
  • 代码

模板模式定义

模板模式就是通过抽象类来定义一个逻辑模板,逻辑框架、逻辑原型, 然后将无法决定的部分抽象成抽象类交由子类来实现,一般这些抽象类的调用逻辑还是在抽象类中完成的

举例

本猿的女盆友是一个高中老师。以她上一节课的周期举例:
她要线预习大纲、梳理讲课流程、做教案准备例题、开始上课、讲完一阶段给学生答疑、布置作业、批改作业。
由于要根据讲课的进度选择是否留作业,所以留作业和 批改作业有一些变数,所以要设置一个钩子,方便外部的调用

代码


/*** 模板模式就是: ,模板模式就是通过抽象类来定义一个逻辑模板,逻辑框架、逻辑原型,* 然后将无法决定的部分抽象成抽象类交由子类来实现,一般这些抽象类的调用逻辑还是在抽象类中完成的  。**///逻辑模板
public abstract class TeacherCourse {//因为逻辑流程已经定下,所以不能 被子类重写,所以要用final修饰public final void  createCourse() {//预习大纲this.prepareSllabus();//授课思路梳理this.thinking();//准备例题this.demo() ;//给学生讲课this.teach();//给学生答疑this.answer();//留作业不是一个必然的过程,若果课程全部讲完,需要留作业,但是没有讲完就不需要留作业,//所以要设置一个钩子方法,以方便与子类去微调if(this.hasHomework())  {//给学生留作业this.homework();//批改作业this.correct();}System.out.println(" 一个课程的生命周期完成 ");}final void homework() {System.out.println("给学生留课后作业");}final void correct() {System.out.println("给学生批改作业");}protected  boolean hasHomework() {return  false;}final void answer() {System.out.println("给学生答疑");}final void teach() {System.out.println("给学生上课");}final void demo() {System.out.println("准备例题");}final void thinking() {System.out.println("授课思路梳理");}final void prepareSllabus(){System.out.println("预习大纲");}}

//上个不留作业的课程

//上第一节课 集合
public class ListCourse extends  TeacherCourse {private boolean homework = false;public  ListCourse(boolean homework) {this.homework = homework;}@Overrideprotected boolean hasHomework() {return this.homework;}
}

//测试

public class TemplateTest {public static void main(String[] args) {TeacherCourse course = new ListCourse(true);course.createCourse();}
}

模板模式(templete)相关推荐

  1. 模板模式(TemplateMethod)和策略(StrategyMethod)模式

    2019独角兽企业重金招聘Python工程师标准>>> 模板模式和 策略模式使用场景类似,都是把算法进行封装,可以用分离高层算法和低层的具体实现细节.都允许高层算法独立于他的具体实现 ...

  2. 模板模式(C++) 【转】

    模板模式(template) 在面向对象系统的设计和开发过程中,一定会有这样的情况:对于一些功能,在不同的对象身上展示不同的作用,但是功能的框架是一样的,这就是模板(template)模式的用武之地, ...

  3. 设计模式快速学习(六)模板模式

    举个例子:我们写HTML的时候,先写head然后写body,这样完成了一个空HTML页面的架子,我们的这一系列行为就是一个模板.模板模式中,首先会定义一个抽象类来声明这个事件模板,子类实现并被调用.也 ...

  4. 模板模式(template)解析例子

    摘要:本文深入浅出的讲述了设计模式中的模板模式,并给出了简单的示例,例子浅显易懂,并附带源代码. 模板模式属于行为型模式,其意图是定义一个操作的算法骨架,而将一些步骤延迟到子类中,可以不改变一个算法的 ...

  5. Android开发之模板模式初探

    模板模式我觉得在Android的开发中是最长用到的,基本是随处可见的,认识该模式,有助于我们对Android的源码及框架有一个更深层次的认识.那什么是模板模式呢,模板模式就是定义一个基本框架,将其中的 ...

  6. 深入理解模板模式及实际应用

    2019独角兽企业重金招聘Python工程师标准>>> 原来写了一个博客,记一次Spring环境使用模板模式.用了之后美滋滋.但是通过这几天的压力测试.发现,都怪自己太年少,太懵懂, ...

  7. 7.泡妞与设计模式(八)模板模式

    TEMPLATE METHOD 模板模式 模板方法模式:模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑.不同的子类可以以不同的方 ...

  8. 设计模式之——Template模板模式

    Template模式又叫模板模式,是在父类中定义处理流程的框架,在子类中实现具体处理逻辑的模式.当父类的模板方法被调用时程序行为也会不同,但是,不论子类的具体实现如何,处理的流程都会按照父类中所定义的 ...

  9. java 抽象类 模板_Java抽象类的构造模板模式用法示例

    搜索热词 本文实例讲述了Java抽象类的构造模板模式用法.分享给大家供大家参考,具体如下: 一 点睛 模板模式的一些简单规则. 抽象父类可以只定义需要使用的某些方法,而不能实现的部分抽象成抽象方法,留 ...

最新文章

  1. popStar手机游戏机机对战程序
  2. [NOI2014]动物园 【kmp】
  3. Ribbon、Feign、OpenFeign、spring-cloud-openfeign的区别
  4. C# 数据库系统中使用GDI+绘制柱状图
  5. OpenGL ES之GLSL自定义着色器编程实现粒子效果
  6. PostGIS容器运行
  7. 阿里云PolarDB发布重大更新 支持Oracle等数据库一键迁移上云
  8. Java 集合系列09之 Map架构
  9. EasyUI 1.5.1 美化主题大包 Insdep Theme 1.0.3 已发布,开源下载
  10. 开发流程与管理--《人月神话》精简
  11. 300字总结计算机flash,flash实训报告心得(共10篇).docx
  12. 4.3.3 风管翻模
  13. 互联网快讯:中国联通推出5G视频热线;极米Z6X Pro、极米H3S持续热销;丰速运与云快充达成合作
  14. vue页面特效:雨滴、流星
  15. 知识付费分销直播营销系统源码
  16. 使用python清空文件夹
  17. 利用 Github 网络钩子实现自动化部署
  18. 高中计算机一级基础知识,2017全国计算机一级MS Office考证常考知识点-高中课件精选.doc...
  19. 阿里盒马鲜生刨的巨坑下,类盒马们该何去何从?
  20. 高速神经宽带接口,让大脑和计算机之间传输速度达新高

热门文章

  1. Kendo UI使用教程:入门指南
  2. 运维工具Ansible—主机分组管理(hosts)
  3. mysql利用存储过程删除数据库历史的过期数据
  4. windows下打开命令提示符的方式
  5. 线性筛与欧拉函数、莫比乌斯函数
  6. 路上发现一只被压扁的乌龟,不料竟发生这么诡异一幕
  7. 实例解说:车主如何不花一分钱不出一份力处理交通事故
  8. excel--CLEAN()函数,解决为什么看着相同的字符串但是len()长度不同
  9. 51nod算法马拉松20 C、战忽局的手段
  10. 在线文本编辑器-WebHtmlEditor