设计模式-模版方法

来源:互联网 发布:美国为什么强大知乎 编辑:程序博客网 时间:2024/05/22 14:09
6、模板方法模式:定义一个操作中的算法骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
下面举个例子,作为一个码农,总会面临换工作,那就会遇见笔试的情况我们到一家公司面试Java的人面试题是一样的,而只有答案是我们每个人写的。这个
面试题就用到了模板方法模式。
1、创建试卷类
public class Paper {
public void TestQuestion1() {
System.out.println("1. 在Java中,负责对字节代码解释执行的是 :  A. 应用服务器B. 虚拟机C. 垃圾回收器D. 编译器 ");
}


public void TestQuestion2() {
System.out.println(
"2. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈得输出序列的是:  A. 5 4 1 3 2 B. 2 3 4 1 5 C. 1 5 4 3 2 D. 2 3 1 4 5");
}
}
2、定义模板类
public abstract class TestPager extends Paper {


protected abstract String answer1();


protected abstract String answer2();


@Override
public final void TestQuestion1() {


super.TestQuestion1();
System.out.println("你的答案是:" + answer1());
}


@Override
public final void TestQuestion2() {


super.TestQuestion2();
System.out.println("你的答案是:" + answer2());
}
}
3、创建面试者A
public class TestPagerA extends TestPager {


/**
* 第一题的答案
*/
@Override
protected String answer1() {


return "B";
}


/**
* 第二题的答案
*/
@Override
protected String answer2() {


return "A";
}
}
4、测试用例
public class TestCase {


public static void main(String[] args) {
TestPager pager1 = new TestPager1();
// 第一题问题及答案
pager1.TestQuestion1();
// 第二题问题及答案
pager1.TestQuestion2();
}
}
模板方法模式就是通过把不变的行为搬到超类,去除子类中重复的代码,模板方法模式就是提供了一个很好的代码复用平台.
当我们遇到由一系列步骤构成的过程需要执行时。这个过程从高层次上看是相同的,但有些步骤的实现可能不同。这时候,
我们通常就应该考虑使用模板方法模式了。
0 0
原创粉丝点击