首页 > 编程知识 正文

模板模式java,模板模式应用场景实例

时间:2023-05-06 11:55:49 阅读:273455 作者:2997

模板模式(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; } @Override protected boolean hasHomework() { return this.homework; }}

//测试

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。