黑马程序员技术交流社区
标题:
模板方法模式
[打印本页]
作者:
小子考驾照
时间:
2014-8-27 23:35
标题:
模板方法模式
今天重新看了一遍毕老师的模板方法模式,然后在网上看到这样一点代码,重新认识了这个模式的应用,没有毕老师那个好想,
/*
一张试卷,哈哈
*/
class TestpaperTemplate
{
public void templateMethod()//模板方法,定义了要完成操作的骨架
{
question1();
answer1();
question2();
answer2();
}
void question1()
{
cout<<"问题一:二叉树每个节点儿子节点数目有多少:\n";
cout<<"A.最多1个 B.最多两个 C.任意多个 D.至少一个";
}
void question2()
{
cout<<"问题二:完全二叉树叶子节点可能在哪一层:\n";
cout<<"A.任意一层 B.最后一层 C.最后两层 D.最后三层";
}
protected virtual void answer1();//这两个方法的具体实现延时到子类,因不同的类而不同
{
virtual void answer2();
}
class StudentA :public TestpaperTemplate
{
virtual void answer1()
{
cout<<"答案:B"<<endl<<endl;
}
virtual void answer2()
{
cout<<"答案:A"<<endl<<endl;
}
}
class StudentB :public TestpaperTemplate
{
//此处和StudentA中类似,只是每个学生选择的答案不同
}
看了半天才弄明白这思路,分享一下,一起来学习{:3_57:}
作者:
alee
时间:
2014-8-27 23:51
谢谢分享
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2