- 今天重新看了一遍毕老师的模板方法模式,然后在网上看到这样一点代码,重新认识了这个模式的应用,没有毕老师那个好想,
- /*
- 一张试卷,哈哈
- */
- 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:}
|
|