2019独角兽企业重金招聘Python工程师标准>>>

模板方法模式(Templete Method):定义一个操作中的算法的骨架,而将一些可变部分的实现延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤。

package com.main;import java.util.Random;public class TempleteMethod {public static void main(String[] args) {Girl g = new Girl();g.play();}}// 具体的执行者
class Girl extends Games {@Overridepublic boolean result() {Random r = new Random();return r.nextBoolean();}}// 游戏模板设计
abstract class Games {// 骨架public void play() {System.out.println("游戏开始");System.out.println("结果:");if (result()) {System.out.println("YOU WIN!");} else {System.out.println("YOU LOSE!");}}// 可变的部分,在这里只定义,留着在子类中再去实现public abstract boolean result();
}

转载于:https://my.oschina.net/u/2296916/blog/609793

抽象类应用——模板方法模式相关推荐

  1. Java:抽象方法和抽象类,抽象类应用模板方法模式,接口及使用

    一.抽象类概念和作用 抽象类                 Java中可以定义没有方法体的方法,该方法由子类来具体实现.                 该没有方法体的方法我们称之为抽象方法,含有抽 ...

  2. java抽象类和模板模式_测试抽象类和模板方法模式

    java抽象类和模板模式 摘自Wikipedia,"模板方法定义了算法的程序框架. 子类可以覆盖一个或多个算法步骤,以允许不同的行为,同时确保仍然遵循总体算法." 通常,此模式由两 ...

  3. 测试抽象类和模板方法模式

    摘自Wikipedia,"模板方法定义了算法的程序框架. 子类可以覆盖一个或多个算法步骤,以允许不同的行为,同时确保仍然遵循总体算法." 通常,此模式由两个或多个类组成,一个是提供 ...

  4. 抽象类和模板方法模式

    抽象方法和抽象类 抽象类:用abstract修饰符修饰的类,如: public abstract class GeneralService {} 抽象方法:用abstract修饰符修饰的方法,抽象方法 ...

  5. JAVA基础13-Java抽象方法、抽象类、抽象之模板方法模式

    文章目录 Java抽象方法和抽象类 抽象之模板方法模式 Java抽象方法和抽象类 抽象类: Java中可以定义没有方法体的方法,该方法由子类来具体实现.这个没有方法体的方法我们称之为抽象方法,含有抽象 ...

  6. 继承的概念和实现 、 super关键字 、 Object常见方法、抽象类、接口、模板方法模式、成员内部类、匿名内部类

    这篇博客将会涉及到: 继承的概念和实现 super关键字 方法重写-Override Object常见方法 继承的概念: 生活中,继承的概念随处可见,继承需要符合的关系:is-a:父类更通用.子类更特 ...

  7. 设计一个扩展自抽象类geometricobject_设计模式4之模板方法模式

    背景 在开发中,你肯定有遇到过这样一种场景:你知道某个方法的关键步骤以及执行顺序,但是里面有的具体步骤并清楚.你会怎么做? 比如你早上起床到公司,我们分解步骤: "起床洗漱吃早餐乘坐交通工具 ...

  8. Java抽象类:案例、特点、模板方法模式

    一.抽象类的案例 案例:加油站支付卡  系统需求: 某加油站推出了2种支付卡: 1.预存1万元的金卡,后续加油享受8折优惠: 2.预存5千元的银卡,后续加油享受8.5折优惠. 请分别实现2种卡片进入收 ...

  9. 设计模式之模板方法模式(Template Method)摘录

    23种GOF设计模式一般分为三大类:创建型模式.结构型模式.行为模式. 创建型模式抽象了实例化过程,它们帮助一个系统独立于如何创建.组合和表示它的那些对象.一个类创建型模式使用继承改变被实例化的类,而 ...

最新文章

  1. 线程池之FixedThreadPool学习
  2. NSPredicate 查询/搜索
  3. codeforces Restore Cube(暴力枚举)
  4. html5群组选择器,css选择器
  5. 关于数据权限的几个问题
  6. 你真的会用Gson吗?Gson使用指南(三)
  7. 《Essential C++》笔记之关联容器set的使用总结
  8. 如何让文章的内容更吸引人
  9. id导出pdf失败_InDesign 导出印刷用PDF时如何设置?
  10. 印象笔记中可以使用html语言吗,印象笔记支持markdown啦
  11. 查看python包的版本
  12. ARM开发板开机自启
  13. 关于解决无线拨号(PPPOE)上网的若干问题(WISP)
  14. 一篇文章教会你利用Python网络爬虫抓取王者荣耀图片
  15. 数据分析常用的Excel函数合集
  16. 群体遗传,进化分析利器Popgene分享给大家
  17. Java 8 日期时间类
  18. css3 呼吸的莲花_Css实例制作“荷花盛开”代码演示
  19. 数据模型|组成要素、概念模型、逻辑模型
  20. Java【冒泡排序】算法, 大白话式图文解析(附代码)

热门文章

  1. 百行代码打造一个DI容器(支持瞬时生命周期、单利生命周期、构造函数自动注入、属性自动注入、字段自动注入)...
  2. Html/CSS博文目录
  3. Linux软件安装管理---源码安装
  4. JS基础 -- 枚举对象中的属性
  5. tomcat启动卡死在: Initializing Spring root WebApplicationContext的解决办法
  6. 云时代服务器端工程师必备 CDN 技能包
  7. 禁用windows更新完成后的重启提示
  8. ubuntu16.04 安装 eclipse
  9. C#中的线程(二) 线程同步基础
  10. WP8.1开发中复杂JSON绑定数据时的方法