欢迎来到天天文库
浏览记录
ID:11796137
大小:159.00 KB
页数:9页
时间:2018-07-14
《如何在c 教学中引入设计模式的思想》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、如何在C++教学中引入初步的设计模式思想向华(长江大学计算机科学学院,湖北荆州434100)[摘要]本文从教学的角度阐述了如何在C++程序设计课中引入初步设计模式的思想的方法,简单说明了设计模式在面向对象程序设计教学中的重要性,并以一个实际可操作性的案例为进行论述,在实践中取得了良好的教学效果。[关键字]设计模式案例抽象工厂一、引言C++语言程序设计是计算机类专业的专业基础课,本课程的主要目的是培养学生的基本编程能力、基本的软件逻辑思维方法以及基本的面向对象思维方法[1],但从实际教学情况看,本课程学完之后,很多同学遇到具体的问题时,很少有同学用
2、面向对象的类结构解决问题,即使设计了类,也是把各种功能揉进一个类中,然后“按顺序”调用,经过了解,很多同学感觉学了C++后,在解决某一个具体问题时,直接设计使用C++的函数就可以解决问题,对于设计类,然后借助对象搭建程序反而感觉更“麻烦”。分析其原因,主要是由于我们在教学过程中,过于注重C++的语法解析,所举的应用实例都是为了理解语法的方便比较简单的计算型的,较少涉及到逻辑关系复杂,代码量较长的问题,所以无法让学生从根本上理解面向对象程序设计的好处,又由于课时安排的原因,在整个本科教学过程中又无法开设《设计模式》这门课,这样导致部分同学在后面的学
3、习过程无法遇到问题,还是无法很好的利用面向对象的可复用思想解决问题。二、C++教学中引入设计模式思想的案例设计模式使人们可以更加简单方便地复用成功的设计和体系结构,给同学们传递的最主要的是可复用的面向对象的思想,现有的23个模式是实现这一思想的主要模式[2],但如果在教学中不加选择的笼统介绍给同学们,在还不是很熟练的掌握C++的语法的情况下,会让大家更是一头雾水,所以,对准备给同学们讲的模式应当有代表性,实现起来又比较容易,同时,使同学们切身感受到设计模式的好处。经过笔者教学过程中的摸索,给出了一个比较好的教学思路,下面以一个讲解抽象工厂模式的例
4、子说明教学引入过程。1.前期铺垫在讲解函数一章时,布置下函数作业,要求同学们分别写出求圆、正方形、矩形、梯形、三角形面积的函数,从实践情况看,大部分同学在这一阶段可以很好的完成任务,给出所要求的程序,同学们作业中一般的函数结构是:DoubleAreaOFTectangle(double);//求三角型面积。其它几种图形面积求法类似。2.创建类对象求面积在进入面向对象程序设计讲解时引入类的概念之后,要求同学们完成构建圆、正方形、矩形、梯形、三角形类,并用各个类分别创建一个对象实例,然后求出总面积输出。此阶段在同学们的作业中多出现类似下面的程序结构:
5、Circlec(3.0);//圆对象SquareSq(4.0);//正方形对象RectangleR(5.0,6.0);//矩形对象TrapezoidTra(6.0,4.0,3.0);//矩形对象TriangleTri(5.0,3.0.4.0);//三角形对象DoubleAreaSum=C.ReturnArea()+Sq.ReturnArea()+R.ReturnArea()+Tra.ReturnArea()+Tri.ReturnArea();//面积求和计算3.提出问题在深入学习过多态性与虚函数一节之后,向同学们提新的要求,可否提供一个基类[3]
6、,把所有图形的面积计算都做成一个统一的接口,由于已经学过虚函数还有继承,所以同学们会很自然想到用虚基类的继承形式,形成如下的类结构图。图表1图形类继承关系此结构其实已经是抽象工厂模式了,只是同学们还不知道如何发挥它的作用,在这里用进一步的问同学们如何得到一组图形的面积和?用以引导同学们进一步探讨此模式的用法。在恰当的时候,老师可以给出解决方案:Figure*pFig[n];pFig[0]=newCircle(3.0);//圆对象pFig[1]=newSquare(4.0);//正方形对象pFig[2]=newRectangle(5.0,6.0);
7、//矩形对象pFig[3]=newTrapezoid(6.0,4.0,3.0);//矩形对象pFig[4]=newTriangle(5.0,3.0.4.0);//三角形对象…..//统一通过基在指针调用子类对象的面积函数for(inti=0;iReturnArea();此例演示完成后,则可以给同学们给出规范化的抽象工厂模式的结构图和描述,如下图,描述略。图表2抽象工厂模式至此,在抽象工厂模式的讲解完成,用类似的先实践后理论总结的方法笔者也尝试讲解过结构型模式和行为模式的基本用法,效果良好。一、总结
8、2008年下半的笔者所带的<>共105个课时,学生人数79人,在整个讲授中,笔者把设计模式中的三大类别的基本模式都
此文档下载收益归作者所有