《大话设计模式》第十章
package ch10;
public abstract class TestPaper {
public abstract void answer1();
public abstract void answer2();
public abstract void answer3();
public void question1() {
System.out.println("问题1");
System.out.println("答案:");
answer1();
System.out.println();
}
public void question2() {
System.out.println("问题2");
System.out.println("答案:");
answer2();
System.out.println();
}
public void question3() {
System.out.println("问题3");
System.out.println("答案:");
answer3();
System.out.println();
}
}
package ch10;
public class TestPaperA extends TestPaper {
@Override
public void answer1() {
System.out.println("A");
}
@Override
public void answer2() {
System.out.println("B");
}
@Override
public void answer3() {
System.out.println("C");
}
}
package ch10;
public class TestPaperB extends TestPaper {
@Override
public void answer1() {
System.out.println("B");
}
@Override
public void answer2() {
System.out.println("C");
}
@Override
public void answer3() {
System.out.println("A");
}
}
package ch10;
/**
* 模板方法模式
* @author Administrator
*
*/
public class Client {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("学生a抄的试卷");
TestPaper a = new TestPaperA();
a.answer1();
a.answer2();
a.answer3();
System.out.println("学生b抄的试卷");
TestPaper b = new TestPaperB();
b.answer1();
b.answer2();
b.answer3();
}
}
模板方法模式很简单,很容易理解。