006.设计模式之模板模式
来源:互联网 发布:土木转金融 知乎 编辑:程序博客网 时间:2024/05/17 23:33
模板模式:
概念:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的特定步骤
要素:
1.抽象方法,只做声明,不加以实现
2.模板方法:声明并加以实现
3.钩子方法:有抽象类声明并加以实现,由模板类进行扩展
优点:
1.容易扩展
2.便于维护
3.比较灵活
使用场景:
1.当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细层面上的实现可能不同时,我们通常用模板方法模式来处理。
模板方法package com.shenghuoquaner.design.Template;public abstract class TemplateMethod { public void testPaper() { System.out.println("题目一:杨过没等到小龙女会怎么办? A:跳崖 B:娶郭襄"); System.out.println("题目二:郭襄如果嫁给杨过了,会创建峨眉派吗? A:会 B:不会"); String studentName = studentName(); System.out.println(studentName + "题目一的答案是: " + answer1()); System.out.println(studentName + "题目二的答案是: " + answer2()); System.out.println(); } public abstract String studentName(); public abstract String answer1(); public abstract String answer2();}
package com.shenghuoquaner.design.Template;public class StudentPaper1 extends TemplateMethod { public StudentPaper1() { } @Override public String answer1() { return "A"; } @Override public String answer2() { return "B"; } @Override public String studentName() { return "北国"; }}
package com.shenghuoquaner.design.Template;public class StudentPaper2 extends TemplateMethod { public StudentPaper2() { } @Override public String answer1() { return "B"; } @Override public String answer2() { return "A"; } @Override public String studentName() { return "北北"; }}
package com.shenghuoquaner.design.Template;public class Test { public static void main(String[] args) { TemplateMethod tm1 = new StudentPaper1(); tm1.testPaper(); TemplateMethod tm2 = new StudentPaper2(); tm2.testPaper(); }}
运行结果:题目一:杨过没等到小龙女会怎么办? A:跳崖 B:娶郭襄题目二:郭襄如果嫁给杨过了,会创建峨眉派吗? A:会 B:不会北国题目一的答案是: A北国题目二的答案是: B题目一:杨过没等到小龙女会怎么办? A:跳崖 B:娶郭襄题目二:郭襄如果嫁给杨过了,会创建峨眉派吗? A:会 B:不会北北题目一的答案是: B北北题目二的答案是: A
0 0
- 006.设计模式之模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- 设计模式之 - 模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- 设计模式之模板模式
- lzg_ad: 构建一个包含FBWF的Windows Embedded Standard 7镜像
- android消除锯齿原理分析
- Android框架设计模式(一)——Template Methods
- using System.Diagnostics 可以制作一个定时器
- 当没有目标的时候怎么办
- 006.设计模式之模板模式
- web.py使用模板时报错No template named index原因及解决方案
- MySQL-常见数据拆分办法
- Edittext 的光标移动
- Qt无法输入中文问题解决
- Apache Jmeter
- unity 中的 数学函数库(完善中)
- 145 php 设计模式代码和应用场景实例
- JAVA实现二叉树的遍历