第十话-模板方法模式
一个mo子里刻出来的?NO,NO,NO应该是一个mu子里立刻出来的。今天看了模板方法模式,一起学习了。
一、什么是模板方法模式?
定义:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
请大家细细品味定义,模板方法模式,父类只考虑骨架,子类只考虑血肉。有一些不必父类做的事情要放到子类中去。
二、模板方法模式有哪些应用?
应用太广泛了,也许你已经悄悄的用了N年了。因为此模式可以封装不变部分,扩展可变部分。所以,我们要提取公共部分代码,便于维护。你想到的基本都可以使用此模式。
三、一个小例子
父类(抽象类;包括基本模板方法和抽象方法;基本模板方法是骨架;抽象方法是留给子类实现的;)
TestPaper.java
public abstract class TestPaper {
public void question1(){
System.out.println("问题1:请问世界上最大的湖是什么湖?");
System.out.println("答案1:"+answer1());
}
public void question2(){
System.out.println("问题2:你所知道的最大数?");
System.out.println("答案2:"+answer2());
}
protected abstract String answer1();
protected abstract String answer2();
}
具体子类
Student1.java
public class Student1 extends TestPaper {
@Override
protected String answer1() {
// TODO Auto-generated method stub
return "苏必利尔湖";
}
@Override
protected String answer2() {
// TODO Auto-generated method stub
return "3";
}
}
Student2.java
public class Student2 extends TestPaper {
@Override
protected String answer1() {
// TODO Auto-generated method stub
return "里海";
}
@Override
protected String answer2() {
// TODO Auto-generated method stub
return "1";
}
}
测试主类:
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TestPaper paper1 = new Student1();
TestPaper paper2 = new Student2();
System.out.println("学生1的试卷:");
paper1.question1();
paper1.question2();
System.out.println("学生2的试卷:");
paper2.question1();
paper2.question2();
}
}
四、小结
忘了是在哪个大牛博客里看到的了,如果你只想学习一个设计模式,那就学习模板方法模式吧。
模板方法模式很简单,但实用性强,并且使用广泛。所以,学习吧。嘿嘿。下一话:迪米特法则
第十话-模板方法模式相关推荐
- 设计模式(十):模板方法模式
目录 1.整体框架 2.介绍 2.1.定义 2.2.作用 2.3.解决的问题 3.认识模版方法模式 3.1.变与不变 3.2.好莱坞法则 3.3.对设计原则的体现 4.模式原理 4.1.UML类图 & ...
- 模板方法模式 Template method 行为型 设计模式(二十六)
模板方法模式 Template method 上图为网上百度的一份简历模板截图 相信大家都有求职的经历,那么必然需要简历,写简历的时候,很可能你会网上检索一份简历模板,使用此模板的格式,然后替换为你的 ...
- 23种设计模式(十四)模板方法模式(阁瑞钛伦特软件-九耶实训)
常说的设计模式是23种设计模式,分为3大类: 创建型模式5种:工厂方法.抽象工厂.单例.建造者.原型 结构型模式7种:适配器.代理.桥接.装饰者.外观.享元.组合 行为型模式11种:模板方法.解释器. ...
- 设计模式学习(十六) 模板方法模式
场景: -- 客户到银行办理业务 1:取号排队 2:办理具体现金/转账/企业/个人/理财业务 3: 给银行工作人员评分 模板方法介绍; -- 模板方法模式是编程中经常用到的模式,它定义了一个操作中的算 ...
- 设计模式学习笔记(十八:模板方法模式)
1.1概述 定义了一个操作中算法的骨架,而将一些步骤延迟到子类中.模板方法使子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤.这就是模板方法的定义. 类中的方法用以表明该类的实例所具有的行为 ...
- 小话设计模式五:模板方法模式
模板方法模式定义: 定义一个操作中的算法骨架,而将一些实现步骤延迟到子类当中.模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤. 模板方法解析: 模板方法模式是比较简单的一种设计 ...
- Unity【话大】设计模式之模板方法模式
前言:笔者在最开始写程序的时候经常会遇到一种情况,例如更改一个字段.或者添加一种小功能,就要把原来写过的东西几乎废弃掉,或者更改大量以前写过的代码.又或者自己写的东西时间久了再去回顾,完全找不到到时为 ...
- C++设计模式--模板方法模式
概述 模板方法模式(Template Method)是定义一个操作中的算法框架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法框架的结构即可重定义该算法的某些特定步骤. 模板方法模式的一 ...
- 继承的概念和实现 、 super关键字 、 Object常见方法、抽象类、接口、模板方法模式、成员内部类、匿名内部类
这篇博客将会涉及到: 继承的概念和实现 super关键字 方法重写-Override Object常见方法 继承的概念: 生活中,继承的概念随处可见,继承需要符合的关系:is-a:父类更通用.子类更特 ...
最新文章
- 激活函数GELU()
- ubuntu14.04 安装 bcm43142无线网卡
- 初等数论--同余方程--同余方程组:中国剩余定理
- matlab元件阻感负载,单相桥式全控整流电路阻感负载课程设计matlab
- 找二叉树中给定元素的的左孩子结点_LeetCode高频题:二叉树(五)
- 纯CSS实现气泡聊天框的方法
- python-flask-1
- Vue动态类名的实现
- 中国四丁基尿素(TBU)市场趋势报告、技术动态创新及市场预测
- 联想微型计算机怎么进入bios,详细教你联想电脑怎么进入bios
- 栈 -- 4.1.1 Valid Parentheses I-II -- 图解
- PAT 乙级A1025 适合当算法入门练习题做
- 微型计算机的硬件原理图,电脑硬件基础图解
- “封号斗罗” 程序员修炼之道:通向务实的最高境界
- 新浪微博PC端登录分析
- 最短路径算法之Dijkstra算法(java实现)
- 内网安全(四)---横向渗透:PTHPTKPTT
- HTML Purifier 4.3.0
- wamp mysql创建数据库_在wamp中创建数据库
- pwn在matlab中怎么搭建,PWN题搭建