码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式(7)--模板模式

时间:2016-11-04 01:29:12      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:return   str   rtu   考试   ret   延迟   string   步骤   定义   

//7.模板模式
//ver1
//考试试卷类
class TestPaper
{
public:
	void TestQuestion1(){}
	void TestQuestion2(){}

	virtual string Answer1()
	{
		return "";
	}
	virtual string Answer2()
	{
		return "";
	}
};

class TestPaperA : public TestPaper
{
public:
	void TestQuestion1()
	{
		TestPaper::TestQuestion1();
		//A回答1
		Answer1();
	}
	void TestQuestion2()
	{
		TestPaper::TestQuestion2();
		//A回答2
		Answer2();
	}

	string Answer1()
	{
		return "A";
	}
	string Answer2()
	{
		return "B";
	}
};
class TestPaperB : public TestPaper
{
public:
	void TestQuestion1()
	{
		TestPaper::TestQuestion1();
		//B回答1
		Answer1();
	}
	void TestQuestion2()
	{
		TestPaper::TestQuestion2();
		//B回答2
		Answer2();
	}
	string Answer1()
	{
		return "C";
	}
	string Answer2()
	{
		return "D";
	}
};

void main1()
{
	TestPaper * pstuA = new TestPaperA();
	pstuA->TestQuestion1();
	pstuA->TestQuestion2();

	TestPaper * pstuB = new TestPaperB();
	pstuB->TestQuestion1();
	pstuB->TestQuestion2();
}

//模板模式: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。
//模板模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

//模板模式通过把不变行为搬到超类,去除子类中的重复代码来体现它的优势。

  

设计模式(7)--模板模式

标签:return   str   rtu   考试   ret   延迟   string   步骤   定义   

原文地址:http://www.cnblogs.com/sylar-liang/p/6028817.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!