首页 > 编程语言 >第七十五节 Java设计模式 - 模板方法模式

第七十五节 Java设计模式 - 模板方法模式

时间:2024-05-27 21:31:19浏览次数:15  
标签:Java void System println Override 设计模式 abstract 模板 out

Java设计模式 - 模板方法模式

在模板模式中,父抽象类公开几个抽象方法供子类实现。在父抽象类中有另一个方法或几个方法使用抽象方法来实现业务逻辑。

抽象方法通常用于父类所需的每个步骤。

例如,为了使用新的软件,我们需要下载,安装,配置和运行。如果我们要使用模板模式来编码逻辑,我们将创建一个父类如下。

abstract class UseSoftware{
   abstract void download();
   abstract void install();
   abstract void configuration();
   abstract void run();
   
   public void useNewSoftware(){
     download();
     install();
     configuration();
     run();   
   }
}

对于使用不同的软件,我们只需要从上面的抽象类继承并提供详细的实现。

模板模式是一种行为模式。

例子

abstract class Software {
   abstract void initialize();
   abstract void start();
   abstract void end();
   //template method
   public final void play(){
      //initialize
      initialize();
      //start
      start();
      //end
      end();
   }
}
class Browser extends Software {
   @Override
   void end() {
      System.out.println("Browser Finished!");
   }

   @Override
   void initialize() {
      System.out.println("Browser Initialized!.");
   }

   @Override
   void start() {
      System.out.println("Browser Started.");
   }
}
class Editor extends Software {

   @Override
   void end() {
      System.out.println("Editor Finished!");
   }

   @Override
   void initialize() {
      System.out.println("Editor Initialized!");
   }

   @Override
   void start() {
      System.out.println("Editor Started!");
   }
}
public class Main {
   public static void main(String[] args) {
      Software s1 = new Browser();
      s1.play();
      s1 = new Editor();
      s1.play();    
   }
}

上面的代码生成以下结果。

标签:Java,void,System,println,Override,设计模式,abstract,模板,out
From: https://blog.csdn.net/2301_78772942/article/details/139248395

相关文章

  • c++设计模式-装饰器模式和代理模式
    namespace_nmsp1{//抽象的控件类classControl{public:virtualvoiddraw()=0;//draw方法,用于将自身绘制到屏幕上。public:virtual~Control(){}//做父类时析构函数应该为虚函数};//列表控件类classListCtrl......
  • Java-JVM-运行时数据区
    参考:面试必问,JVM内存模型详解一篇文章掌握整个JVM,JVM超详细解析!!!JVM内存模型深度刨析图灵课堂-JVM极简教程(视频)0.是什么JVM是JavaVirtualMachine的缩写,即Java虚拟机。它能够运行编译后的Java字节码,使Java程序具有跨平台的特性。JVM并不会在安装JDK或JRE时自动启动,当......
  • Java反射(个人学习笔记)
    Java反射反射的定义:Java反射是指在运行时动态地获取类的信息,并可以通过该信息来操作类或对象。通过反射,我们可以在运行时获取类的字段、方法、构造函数等信息,并能够动态地创建对象、调用方法、访问和修改字段的值。反射相关的类:Class类代表类的实体,在运行的Java应用程......
  • spring项目报错error:java:无效的目标发行版:15 解决
    1.报错原因由控制台信息可知报错原因是Error:java:无效的目标发行版:15"指的是你尝试使用Java编译器(javac)编译Java代码时,指定的目标版本是15,但是你的编译器版本(在这里是javac8)不支持这个目标版本。 2.依次排查错误首先我想到的就是在peojectsetting检查jd......
  • 升鲜宝供应链管理系统重构版发布(技术点:Java8、mysql8.0 uniapp、vue、android、web 框
    升鲜宝供应链管理系统重构版发布(技术点:Java8、mysql8.0uniapp、vue、android、web框架:Vue3+SpringBoot3),界面功能(一)  升鲜宝供应链管理系统重构版发布(技术点:Java8、mysql8.0uniapp、vue、android、web框架:Vue3+SpringBoot3),界面功能(一) 1.登录与申请试用界......
  • 最新JAVA面试八股文,终于整理完了
    前言今天为大家整理了目前互联网出现率最高的大厂面试题,所谓八股文也就是指文章的八个部分,文体有固定格式:由破题、承题、起讲、入题、起股、中股、后股、束股八部分组成,题目一律出自四书五经中的原文。而JAVA面试八股文也就是为了考验大家的JAVA基础功底,所以强烈建议背诵全......
  • [Java EE] 网络编程与通信原理(三):网络编程Socket套接字(TCP协议)
    ......
  • Java面试--多线程
    目录Java多线程1.什么是线程?什么是多线程?2.多线程的生命周期?3.线程常出现的基本方法?4.wait()和sleep()的区别?5.实现多线程的方式?6.start()和run()的区别?7.如何正确停止线程?8.使用线程池的好处?9.线程池主要参数?10.线程池的执行过程?11.四大拒绝策略?12.线程池的各个状态?13.......
  • 计算机Java项目|基于SpringBoot的IT技术交流和分享平台的设计与实现
    作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互......
  • 计算机Java项目|基于Springboot的“衣依”服装销售平台的设计与实现
    作者主页:编程指南针作者简介:Java领域优质创作者、CSDN博客专家、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、腾讯课堂常驻讲师主要内容:Java项目、Python项目、前端项目、人工智能与大数据、简历模板、学习资料、面试题库、技术互......