设计模式 | 模板方法模式(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)——复杂流程步骤的设计
模式概述 在现实生活中,很多事情都包含几个实现步骤,例如请客吃饭,无论吃什么,一般都包含点单.吃东西.买单等几个步骤,通常情况下这几个步骤的次序是:点单 --> 吃东西 --> 买单. 在 ...
随机推荐
- MySQL SHOW TABLE 输出的每列详细介绍
Name: 表名 Engine: 表的存储引擎(旧版本中,该值为Type) Row_format: 行的格式.对于MyISAM表,可选的值为Dynamic.Fixed或者Copressed. Dyna ...
- 渐进式Web应用(PWA)入门教程(上)
最近关于渐进式Web应用有好多讨论,有一些人还在质疑渐进式Web应用是否就是移动端未来. 但在这篇文章中我并不会将渐进式APP和原生的APP进行比较,但有一点是可以肯定的,这两种APP的目标都是使用户 ...
- JQUERY获取loaded 宽高这么变态
JQUERY获取loaded 宽高这么变态: $('<img/>').attr('src',img.src).load(function() { img.Owidth = $(this). ...
- Spring3.1 对Bean Validation规范的新支持(方法级别验证)
上接Spring提供的BeanPostProcessor的扩展点-1继续学习. 一.Bean Validation框架简介 写道Bean Validation standardizes constra ...
- 使用JWT的OAuth2的SSO分析
参考:https://github.com/spring-guides/tut-spring-security-and-angular-js/blob/master/oauth2/README.ado ...
- mvn -DskipTests和-Dmaven.test.skip=true区别
在使用mvn package进行编译.打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了跳过测试,会使用参数-DskipTests和-Dmaven.test.skip= ...
- bootstrap table的样式
<style> table{ border: 1px solid #ddd; background-color: transparent; border-spacing:; border- ...
- git回退到某个历史版本
1. 使用git log命令查看所有的历史版本,获取某个历史版本的id,假设查到历史版本的id是139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96. 2. git res ...
- python使用itchat库实现微信机器人
itchat是一个开源的微信个人号接口,可以使用该库进行微信网页版中的所有操作,比如:所有好友.添加好友.拉好友群聊.微信机器人等等.详细用户请看文档介绍,在这里. 本文主要使用该库完成一个能够处理微 ...
- Python爬虫-尝试使用人工和OCR处理验证码模拟登入
刚开始在网上看别人一直在说知乎登入首页有有倒立的汉字验证码,我打开自己的知乎登入页面,发现只有账号和密码,他们说的倒立的验证码去哪了,后面仔细一想我之前登入过知乎,应该在本地存在cookies,然后我 ...