设计模式 | 模板方法模式(template method)
定义:
结构:(书中图,侵删)
实例:
package designpattern.templatemethod; public abstract class NoviceVillage {
public void Task1() {
System.out.println("你好,勇士。请帮我杀掉10个" + Task1Aim());
}
public void underWay() {
System.out.println("任务进行中...");
}
public void Task1Reward() {
System.out.println("太好了,勇士!非常感谢,这是您的报酬:金币*50、经验*500、" + Task1RewardWeapon());
} abstract String Task1Aim(); abstract String Task1RewardWeapon();
}
package designpattern.templatemethod; public class NoviceVillageWarrior extends NoviceVillage{ @Override
String Task1Aim() {
return "老虎怪";
} @Override
String Task1RewardWeapon() {
return "新手巨剑*1";
} }
package designpattern.templatemethod; public class NoviceVillageWizard extends NoviceVillage{ @Override
String Task1Aim() {
return "猴子精";
} @Override
String Task1RewardWeapon() {
return "新手法杖*1";
} }
package designpattern.templatemethod; public class Client {
public static void main(String[] args) {
// 战士
NoviceVillage noviceVillageWarrior = new NoviceVillageWarrior();
noviceVillageWarrior.Task1();
noviceVillageWarrior.underWay();
noviceVillageWarrior.Task1Reward(); System.out.println("=================================="); // 法师
NoviceVillage noviceVillageWizard = new NoviceVillageWizard();
noviceVillageWizard.Task1();
noviceVillageWizard.underWay();
noviceVillageWizard.Task1Reward();
}
}
输出结果:
你好,勇士。请帮我杀掉10个老虎怪
任务进行中...
太好了,勇士!非常感谢,这是您的报酬:金币*50、经验*500、新手巨剑*1
==================================
你好,勇士。请帮我杀掉10个猴子精
任务进行中...
太好了,勇士!非常感谢,这是您的报酬:金币*50、经验*500、新手法杖*1
总结:
设计模式 | 模板方法模式(template method)的更多相关文章
- 设计模式 - 模板方法模式(template method pattern) JFrame 具体解释
模板方法模式(template method pattern) JFrame 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考模板方法模式(templ ...
- 设计模式 - 模板方法模式(template method pattern) 排序(sort) 具体解释
模板方法模式(template method pattern) 排序(sort) 具体解释 本文地址: http://blog.csdn.net/caroline_wendy 參考模板方法模式(tem ...
- 设计模式 - 模板方法模式(template method pattern) 具体解释
模板方法模式(template method pattern) 详细解释 本文地址: http://blog.csdn.net/caroline_wendy 模板方法模式(template metho ...
- java设计模式 模板方法模式Template Method
设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代码可靠性.毫无疑问,设计模式于己 ...
- C#设计模式-模板方法模式(Template Method)
概念 模板指一些可以套用的公共内容,例如网页模板是当网站中有许多页面版式色彩相同的情况下,将其定义为网页模板,并定义其中部分可编辑,部分不可编辑,那么在利用网页模板制作其他页面时就会很方便,不易出错. ...
- 设计模式 ( 十九 ) 模板方法模式Template method(类行为型)
设计模式 ( 十九 ) 模板方法模式Template method(类行为型) 1.概述 在面向对象开发过程中,通常我们会遇到这样的一个问题:我们知道一个算法所需的关键步骤,并确定了这些步骤的执行 ...
- 乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern)
原文:乐在其中设计模式(C#) - 模板方法模式(Template Method Pattern) [索引页][源码下载] 乐在其中设计模式(C#) - 模板方法模式(Template Method ...
- 模板方法模式 Template method 行为型 设计模式(二十六)
模板方法模式 Template method 上图为网上百度的一份简历模板截图 相信大家都有求职的经历,那么必然需要简历,写简历的时候,很可能你会网上检索一份简历模板,使用此模板的格式,然后替换为 ...
- 二十四种设计模式:模板方法模式(Template Method Pattern)
模板方法模式(Template Method Pattern) 介绍定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.Template Method使得子类可以不改变一个算法的结构即可重定义该算法 ...
- 模板方法模式(Template Method Pattern)——复杂流程步骤的设计
模式概述 在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点单.吃东西.买单等几个步骤,通常情况下这几个步骤的次序是:点单 --> 吃东西 --> 买单. 在 ...
随机推荐
- Redis未授权访问
最近在做校招题目的时候发现有问到未授权访问,特此搭建了诸多未授权访问的环境并且一一复现并做简单总结.再次记录下来 环境介绍 0x00环境搭建 我这里用到的是Microsoft(R) Windows(R ...
- 6个常见的php安全攻击
1.SQL注入 SQL注入是一种恶意攻击,用户利用在表单字段输入SQL语句的方式来影响正常的SQL执行.还有一种是通过system()或exec()命令注入的,它具有相同的SQL注入机制,但只针对sh ...
- PAT1077: Kuchiguse
1077. Kuchiguse (20) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 HOU, Qiming The Japan ...
- Pat1128:N Queens Puzzle
1128. N Queens Puzzle (20) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The & ...
- 基于SpringBoot + Mybatis实现SpringMVC Web项目
一.热身 一个现实的场景是:当我们开发一个Web工程时,架构师和开发工程师可能更关心项目技术结构上的设计.而几乎所有结构良好的软件(项目)都使用了分层设计.分层设计是将项目按技术职能分为几个内聚的部分 ...
- Tiny4412MMU内存管理
MMU是Memory Management Unit的缩写,中文名是内存管理单元,MMU是由ARM芯片中的cp15协处理器管理,它的作用是负责虚拟内存到物理内存的映射 要将虚拟内存映射为物理内存,就要 ...
- 为什么选择Spring Boot作为微服务的入门级微框架
摘要:1. Spring Boot是什么,解决哪些问题 1) Spring Boot使编码变简单 2) Spring Boot使配置变简单 3) Spring Boot使部署变简单 4) Spring ...
- 部署项目到tomcat步骤参考如下 2017.7.10
http://jingyan.baidu.com/article/a501d80c0c65baec630f5ef6.html
- 【原】用Java编写第一个区块链(二)
这篇文章将去介绍如何使用区块链进行交易. [本文禁止任何形式的全文粘贴式转载,本文来自 zacky31 的随笔] 目标: 在上一篇文章中,我们已经创建了一个可信任的区块链.但是目前所创建的链中包含的有 ...
- Windows下Pytesser安装
安装流程 详细步骤 安装PIL 32位机器:去到PIL官网进行安装 64位机器:建议使用Pillow代替PIL,PIL官网的安装包在64位机器下无法找到,安装Pillow也非常简单,使用pip就可 ...