首页 > 其他分享 >设计模式-模板方法模式

设计模式-模板方法模式

时间:2024-06-16 16:21:01浏览次数:22  
标签:void System 模式 protected println 设计模式 public 模板 out

模板方法模式

模板方法模式(Template Method Pattern),又叫模板模式,是指定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义该算法的默写特定步骤,属于行为型设计模式。

模板方法的本质是抽象封装流程,该流程由几个步骤组成,具体步骤可以由子类进行不同实现,从而让固定得流程产生不同的结果。简单地说,就是类的继承机制,但是应用比较广泛。

角色:
  • 抽象模板:定义了一套算法框架或流程;
  • 具体实现:对算法框架或流程的某些步骤进行了实现
package com.jdwa.mode;

public abstract class AstractCource {
    private boolean needCheckHomework = false;
    public void setNeedCheckHomework(boolean needCheckHomework){
        this.needCheckHomework = needCheckHomework;
    }
    //规定步骤,不可被重写
    public final void createCource(){
        postPreResource();
        createNote();
        liveVideo();
        postHomework();
        if(neekCheckHomewoork()){
            checkHomework();
        }
    }

    protected abstract void checkHomework();

    protected boolean neekCheckHomewoork(){
        return needCheckHomework;
    }

    protected void postPreResource(){
        System.out.println("postPreResource====");
    }

    protected void createNote(){
        System.out.println("ppt and note====");
    }

    protected void liveVideo(){
        System.out.println("liveVideo====");
    }

    protected void postHomework(){
        System.out.println("postHomework====");
    }
}

package com.jdwa.mode;

public class JavaCource extends AstractCource{
    @Override
    protected void checkHomework() {
        System.out.println("check java homework ...");
    }

}

package com.jdwa.mode;

public class PythonCource extends AstractCource{
    @Override
    protected void checkHomework() {
        System.out.println("check python homework ...");
    }
}

package com.jdwa.mode;

public class Client {
    public static void main(String[] args) {
        System.out.println("======java cource======");
        AstractCource java  = new JavaCource();
        java.setNeedCheckHomework(true);
        java.createCource();

        System.out.println("====python cource====");
        AstractCource py = new PythonCource();
        py.createCource();
    }
}

======java cource======
postPreResource====
ppt and note====
liveVideo====
postHomework====
check java homework ...
====python cource====
postPreResource====
ppt and note====
liveVideo====
postHomework====
欢迎大家留言,以便于后面的人更快解决问题!另外亦欢迎大家可以关注我的微信公众号,方便利用零碎时间互相交流。共勉!

标签:void,System,模式,protected,println,设计模式,public,模板,out
From: https://www.cnblogs.com/caozz/p/18250766/template

相关文章

  • 设计模式-委派模式
    委派模式委派模式(DelegatePattern)又叫委托模式,它允许对象组合实现与继承相同的代码重用。它的基本作用就是负责任务的调用与分配任务,是一种特殊的静态代理,可以理解为全权代理。但是,代理过程注重过程,而委派模式注重结果。角色:抽象任务角色(Task):定义一个抽象接口,他有若干实现类......
  • (pdf)图解java多线程设计模式.pdf (结城浩)
    书:pan.baidu.com/s/1tGbGhhQ3Ez1SIkqdEREsjQ?pwd=eqp0提取码:eqp0线程基础知识:介绍线程的概念、生命周期、状态转换等基本内容,为后续的多线程设计打下基础。Java线程API:详细讲解Java中线程的创建、启动、控制以及线程间的协作机制,如Thread类、Runnable接口等。线程同步与互斥:......
  • 代理设计模式,框架AOP思想
    文章目录引言......
  • 最流行的部署模式概述
    蓝/绿部署:使用两种环境,保证零宕机;一个托管实时版本,而另一个测试新的更新。如果需要,此设置允许轻松回滚。金丝雀部署:首先向一小部分用户推出更改,从而实现性能监控和收集反馈。如果成功,更新可以逐步扩展到更多用户。滚动部署:分阶段更新软件,确保大部分系统保持运行。它非常适合需要连......
  • 设计模式-六大原则
    1.1手写笔记语雀笔记(这里的要美观一些)资料来源:https://www.bilibili.com/video/BV1uF411t7pK/?spm_id_from=pageDriver&vd_source=8cda1934c6f5a681b91bebf711df3c0chttps://refactoringguru.cn/design-patternshttps://www.runoob.com/design-pattern/design-pattern-t......
  • 设计模式——观察者模式(发布/订阅模式)
    观察者模式(发布/订阅模式)是一种行为模式,允许你定义一种订阅机制,可在对象事件发生时通知多个“观察”该对象的其他对象观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一主题对象。这个主题对象在状态发生变化时,会通知所有的观察者对象,使得它们能够自动......
  • 首途第三十三套清新简约卡片风格蓝紫渐变色短视频模板 | 苹果CMSV10主题
    下载地址:首途第三十三套清新简约卡片风格蓝紫渐变色短视频模板|苹果CMSV10主题首途第三十三套清新简约卡片风格蓝紫渐变色短视频模板|苹果CMSV10主题我们的简约风格,以纯洁的白色和深邃的紫色为主色调,为您提供了一种清新、时尚的浏览体验。在这个简洁而美丽的界面中,您可以......
  • 自用Beamer模板(英文版)
    \documentclass[aspectratio=43]{beamer}\usetheme{CambridgeUS}\usepackage[fontsize=10pt]{fontsize}%更好看的数学字母\usefonttheme{professionalfonts}%把enumerate前的圆球(bullet)去掉,也就是设置成默认符号就行\setbeamertemplate{enumerateitems}[defaul......
  • Linux vim 文本编辑 操作文本 三种模式
    介绍vi是一个经典的行编辑器,支持模式编辑(包括普通模式、插入模式和命令模式)。vim保留vi核心功能的基础上,增加了多级撤销、语法高亮、插件支持等高级功能。两者的最大区别,简单的来说vim就是vi的增强版三种模式命令模式(CommandMode)默认进入的是命令模式。在这个模式......
  • 设计模式-组合模式
    组合模式组合模式,也称为整体部分模式,他的宗旨是通过将单个对象(叶子节点)和组合对象(树枝节点)用相同的接口进行表示,使得客户对单个对象和组合对象的使用具有一致性。(树形结构)组合与聚合的关系:组合生命周期保持一致。聚合具有不同的生命周期。角色:抽象根节点(Component):定义系统各......