大话设计模式_模板方法模式

以学生做试卷为例。

package com.wzs.design;

/**
 * 大话设计模式--page93 模板方法模式
 * 
 * @author Administrator
 * 
 */
public class TemplateMethod {
	public static void main(String[] args) {
		TestPaperA testPaperA = new TestPaperA();
		testPaperA.answer1();
		testPaperA.answer2();
		testPaperA.answer3();
		System.out.println();
		TestPaperB testPaperB = new TestPaperB();
		testPaperB.answer1();
		testPaperB.answer2();
		testPaperB.answer3();
	}
}

/*
 * 考试试卷
 */
abstract class TestPaper {
	// 第一题
	public void testQuestion1() {
		System.out.println("1.认为“民为贵,社稷次之,君为轻”的思想家是( )A.孔子 B.孟子C.庄子 D.左丘明");
	}

	// 第二题
	public void testQuestion2() {
		System.out.println("2.李斯的《谏逐客书》选自( )A.《左传》B.《史记》C.《战国策》D.《国语》");
	}

	// 第三题
	public void testQuestion3() {
		System.out.println("3.《五代史伶官传序》中,告诫人们要居安思危的警戒性语句是( )A.祸患常积于忽微,智勇多困于所溺 B.满招损,谦得益");
	}

	// 第一题答案
	public abstract void answer1();

	// 第二题答案
	public abstract void answer2();

	// 第三题答案
	public abstract void answer3();
}

/*
 * 学生A试卷
 */
class TestPaperA extends TestPaper {
	public void answer1() {
		System.out.println("A");
	}

	public void answer2() {
		System.out.println("B");
	}

	public void answer3() {
		System.out.println("C");
	}
}

/*
 * 学生B试卷
 */
class TestPaperB extends TestPaper {
	public void answer1() {
		System.out.println("B");
	}

	public void answer2() {
		System.out.println("C");
	}

	public void answer3() {
		System.out.println("D");
	}
}



你可能感兴趣的:(模板方法模式,大话设计模式,学生做试卷)