第二十讲教程结束语_第1页
第二十讲教程结束语_第2页
第二十讲教程结束语_第3页
第二十讲教程结束语_第4页
第二十讲教程结束语_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二十讲教程结束语第1页,共27页,2023年,2月20日,星期一OOAD理论总结与思索第2页,共27页,2023年,2月20日,星期一北京理工大学计算机系3软件开发的最重要思维方式软件开发的最重要思维方式是什么?抽象!软件=对象+对象之间的关系结构化编程时代

程序=数据结构+算法面向对象软件时代,软件=?第3页,共27页,2023年,2月20日,星期一北京理工大学计算机系4组件化时代的软件设计什么是软件组件?注意:区分ROSE中的组件与软件理论领域中的组件可以复用的,具备一定功能的类的组合。单个类不够资格成为软件组件!软件组件可以以源代码方式存在,也可以以二进制形式存在第4页,共27页,2023年,2月20日,星期一北京理工大学计算机系5组件化时代的软件设计OOD设计师制定组件的规范,高级程序员实现这些可复用的组件现代软件开发已成为组装已有组件的过程,最典型的例子是Java与.net类库第5页,共27页,2023年,2月20日,星期一北京理工大学计算机系6设计模式大型系统中良好的设计是关键为开发面向对象的软件提供一个架构减少了软件设计的复杂度为软件设计方案的重用提供了可能性可以避免犯一些常规性的错误使设计独立于语言建立了一套软件架构设计师的“通用语言”在软件开发周期中缩短了设计周期设计模式(Designpatterns)第6页,共27页,2023年,2月20日,星期一北京理工大学计算机系7使用设计模式熟悉模式才能知道如何使用模式用模式的最好方法就是设计时忘掉所有的模式名,只从实践出发寻找可行的方案,必要时才去翻模式书以获得灵感。我们用UML来描述模式,ROSE是画图工具第7页,共27页,2023年,2月20日,星期一北京理工大学计算机系8设计模式经典书籍四个老外权威:Gamma,Helm,JohnsonandVlissides“GangofFour”——四人帮DesignPatterns,ElementsofReusableObject-OrientedSoftware(AddisonWesley:1995)提出23种设计模式创建型设计模式:解决如何创建对象的问题结构型设计模式:解决类和对象间的结构关系问题行为型设计模式:解决对象间的动态关系问题第8页,共27页,2023年,2月20日,星期一北京理工大学计算机系9参考资料第9页,共27页,2023年,2月20日,星期一北京理工大学计算机系10参考资料第10页,共27页,2023年,2月20日,星期一北京理工大学计算机系11关于设计模式设计模式运用时,心中要无模式;关键在于把握其思想。应仔细研究成熟的设计模式,将其活学活用模式不是数学公式!第11页,共27页,2023年,2月20日,星期一北京理工大学计算机系12结构化编程与面向对象编程面向对象的关键是抽象面向对象分析设计的成功实施要求更高,难度更大: 在理解对象基本理论和开发技术的前提下,加上丰富的程序开发实践,才行。结构化与面向对象方法应该相辅相成,在合适的地方用合适的方法。第12页,共27页,2023年,2月20日,星期一北京理工大学计算机系13结构化编程与面向对象编程在类的内部代码实现上采用结构化编程的方式: 比如:将一个太长的函数按功能分解为若干个小函数,做为类的私有函数只有在调试代码清除BUG中,才发觉OO的妙处和软件工程理论的无比正确! 最重要的是两点: (1)代码隔离; (2)控制模块规模;第13页,共27页,2023年,2月20日,星期一北京理工大学计算机系14对象的存储对象的存储不应直接与数据库打交道对象的管理通常都设计控制类采用STL容器进行管理从数据库记录集生成对象,然后把对象放入STL容器中,是一个很好的设计方案数据库表的一对多关联,表现为对象之间的组合,多对多关联如何处理?请思索!第14页,共27页,2023年,2月20日,星期一北京理工大学计算机系15对象与关系数据库对象实例的数据保存在数据库表中,一般一条记录对应一个对象实例,尽量避免一个对象实例的数据分布在不同的表中,这样就加大了移植的难度;对象与数据库之间的关系问题是OOD与OOP必须解决的问题之一。第15页,共27页,2023年,2月20日,星期一北京理工大学计算机系16数据库表关联与对象的对应表的一对一关联可直接映射到对象间的一对一关联第16页,共27页,2023年,2月20日,星期一北京理工大学计算机系17数据库表关联与对象的对应一对多关联第17页,共27页,2023年,2月20日,星期一北京理工大学计算机系18数据库表关联与对象的对应多对多关联需拆成两个一对多的关联第18页,共27页,2023年,2月20日,星期一北京理工大学计算机系19分而治之的设计方法“分而治之”是一个基本的方法,简单地说,就是将一个复杂的系统划分为几个子系统,然后,分别处理这些子系统,最后再合成一个完整的系统。这是西方科学的主要思维方法之一:重视局部与细节,用放大镜去研究大象。第19页,共27页,2023年,2月20日,星期一北京理工大学计算机系20横向与纵向可以利用多态、模板等机制简化设计继承是纵向的设计方案,STL是横向的解决方案,继承可以复用代码,模板可以减少类的数量,相互配合才是良好的设计。基于组件的“搭积木”过程可以看成是将横向与纵向设计相结合的典范第20页,共27页,2023年,2月20日,星期一北京理工大学计算机系21OOD的指导原则为特定问题产生一个class,然后让它在解决其他问题时,渐渐成长而成熟;设计Class及其接口,是OOD的主要任务;开始写程序,让一部分先动起来,以验证设计,或找出难点所在;保持类的小而简洁,功能明确——《ThinkinginJava》p82第21页,共27页,2023年,2月20日,星期一北京理工大学计算机系22OOAD的哲学方法论真学问把复杂的问题弄得简单,它的目的是让你能够理解;伪学问把简单的问题弄得复杂,它的目的是让你感到神秘。不做就学不到第22页,共27页,2023年,2月20日,星期一北京理工大学计算机系23OOAD的哲学方法论一切都要从实际出发,不迷信老外的一切,相信自己的直觉。采用“拿来主义”现在的OOD,大多是在采用已有的系统架构基础上修修补补,以达到最大限度地利用现有资源的目的。所以,OOD不是独立于语言与开发工具的。不存在界限分明的OOD阶段,事实上,OOD是与编码交织在一起的,没有编码作基础,无法进行OOD,不进行编码实践,就无法改进OOD第23页,共27页,2023年,2月20日,星期一北京理工大学计算机系24OOAD的哲学方法论不管白猫黑猫,逮着老鼠就是好猫。书本上理论上介绍了许多有用的理论,但一切都要从实际出发,OO不是万试灵丹。第24页,共27页,2023年,2月20日,星期一北京理工大学计算机系25现实的约束:从实际角度出发,OO到底是省事还是费事?请拍拍大脑问问自己,我该怎样做?用自己的大脑思索,不要用别人的大脑思索!第25页,共27页,2023年,2月20日,星期一北京理工大学计算机系26结束语计算机技术发展日新月异,实践在不断地提出新问题,这是一个永无止境的过程。 大家有没有自己的想法?探索一个别人还不熟悉的领域,把国外先进的东西与中国的具体实践结合起来……

提高中国软件产业的技术水平,是我们的责任!第26页,共27页,2023年,2月20日,星期一北京理工大学计算机系27结束语感谢大家听完了C++课程,其实这门课程

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论