模板设计模式是一种行为设计模式,它在父类中定义算法的基本结构,而将一些步骤的实现延迟到子类中。这样,可以在不改变算法架构的情况下,通过在子类中实现这些步骤,来实现算法的定制和扩展。

举一个比较简单的例子,假设我们要开发一个制作咖啡和茶的程序。首先定义一个饮料类,作为所有饮料的父类,其中包括制作饮料的基本流程:

public abstract class Beverage {public final void prepareBeverage() {boilWater();brew();pourInCup();if (addCondiment()) {addCondiments();}}public void boilWater() {System.out.println("Boiling water...");}public abstract void brew();public void pourInCup() {System.out.println("Pouring into cup...");}public abstract boolean addCondiment();public void addCondiments() {System.out.println("Adding condiments...");}
}

然后我们可以定义咖啡和茶的子类:

public class Coffee extends Beverage {@Overridepublic void brew() {System.out.println("Brewing coffee...");}@Overridepublic boolean addCondiment() {return true;}
}public class Tea extends Beverage {@Overridepublic void brew() {System.out.println("Steeping tea...");}@Overridepublic boolean addCondiment() {String answer = getUserInput();return answer.toLowerCase().startsWith("y");}private String getUserInput() {Scanner scanner = new Scanner(System.in);System.out.print("Would you like milk and sugar with your tea (y/n)? ");return scanner.nextLine();}
}

最后,我们可以通过实例化咖啡和茶来进行饮料的制作:

public class CoffeeShop {public static void main(String[] args) {Beverage coffee = new Coffee();coffee.prepareBeverage();Beverage tea = new Tea();tea.prepareBeverage();}
}

这样,我们就通过模板设计模式实现了一个简单的饮料制作程序。其中,父类Beverage定义了制作饮料的基本流程,子类Coffee和Tea分别实现了自己的brew和addCondiment方法,通过重写这些方法,实现了饮料的定制。

举例说明-模板设计模式相关推荐

  1. Java笔记018-抽象类、抽象类最佳实践-模板设计模式、接口、内部类

    目录 抽象类 先看一个问题 小结: 抽象类快速入门 抽象类的介绍 抽象类使用的注意事项和细节讨论 抽象类练习题 抽象类最佳实践-模板设计模式 基本介绍 模板设计模式能解决的问题 最佳实践 最佳实践 接 ...

  2. 00012.02设计模式(模板设计模式的了解)

    一.入门:什么叫设计模式 1.什么叫设计模式? 前辈们在写了很多代码以后得出来的一种代码的结构,总结出了一些模式,而且确保这样的写法比另外一种写法更优 简单来说就是:解决问题的套路.代码结构 在Jav ...

  3. Java中23种设计模式之—基于抽象类的模板设计模式

    目录 模板模式(Template Method):  举例 钩子函数(hook)-挂钩 模板设计模式/方法-总结 模板模式(Template Method):  定义一个操作中的算法的骨架,而将一些步 ...

  4. 继承、抽象类、模板设计模式、_nal关键字

    继承.抽象类.模板设计模式.final关键字 今日内容介绍 1. 面向对象基础知识回顾* 如何定义类public class Student{}* 如何创建类的对象Student s = new Stu ...

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

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

  6. 模板设计模式,简单Java代码实现

    /**模板设计模式:定义一个算法的骨架,而将具体的算法延迟到子类中进行实现* 优点:* 使用模板方法模式,在定义算法骨架的同时,可以很灵活地实现具体的算法,满足用户灵活多变的需求* 缺点:* 如果算法 ...

  7. java 抽象属性 设计_Java 抽象类与模板设计模式详解

    抽象类 抽象类是为了方法覆写而提供的类结构,因为其无法自身直接进行对象实例化操作,所以在实际应用中,抽象类主要目的是进行过程操作使用,当你要使用抽象类进行开发的时候,往往都是在你设计中需要解决类继承问 ...

  8. android 程序类图,Android模板设计模式之 - 构建整个应用的BaseActivity

    1. 模式介绍 模式的定义 定义一个操作中的算法的框架,而将一些步骤延迟到子类中.使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤. 模式的使用场景 多个子类有公有的方法,并且逻辑基本相 ...

  9. 子模板继承父模板示例_模板设计模式示例

    子模板继承父模板示例 本文是我们名为" Java设计模式 "的学院课程的一部分. 在本课程中,您将深入研究大量的设计模式,并了解如何在Java中实现和利用它们. 您将了解模式如此重 ...

最新文章

  1. Kubernetes — Calico CNI
  2. error2---BeginPath和EndPath之间的TextOut无法显示
  3. 双主双从(2m-2s)集群介绍和工作流程说明
  4. 2019技术学习规划
  5. VS2005不能新建Win32 智能设备项目的解决办法(转)
  6. android平台安全支付服务(msp)应用开发接口,Android接入支付宝和微信支付的方法...
  7. python版本的快速排序
  8. FreeBSD下MongoDB数据库的安装
  9. IBM宣布:成功研制出了量子计算机原型机,量子计算机商业化正在加速!
  10. Android学习(二):Android Studio创建并运行Android项目(Hello World ~.~)
  11. 该网站安全证书有问题 宝塔面板配置ssl中遇到的“坑”
  12. 安卓app开发菜鸟教程!淘汰了80%的Android面试者,满满干货指导
  13. 怎样从 Google Play 下载 Android 程序到电脑上
  14. VMware之EXSI安装-yellowcong
  15. lv蒙田包二手价格_盘点 | LV家保值性最高,最值得入手的五款包包
  16. Python金融学-风险中性测度
  17. linux-CentOS6.4安装Memcached+memcached扩展+安装memcache扩展+Memcache+mecached同步SESSION的几种方法
  18. STM32F4-SPI
  19. Alcohol 120% 1.9.6.4719 Retail
  20. 著名反病毒测试机构2011年第六次“VB100”权威认证揭晓

热门文章

  1. 【chineseocr_lite】识别效果
  2. 小制作--单片机数字收音机
  3. Typora红色波浪线解决方法
  4. Apple macOS 下载汇总
  5. 硬盘低级格式化需谨记
  6. 【解决方案】TS2300: Duplicate identifier
  7. KEPServerEX  6.8.796.0  新版本发布说明
  8. ps无法在此计算机上,PS打不开。提示本次操作由于这台计算机的限制而被取消。请与您的系统管理员联系...
  9. 阿里游戏云事业部总经理马全治:推动阿里巴巴集团游戏生态联盟升级
  10. comfort说明书 tp1200_西门子TP1200COMfort用什么编程软件