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

下载本文档

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

文档简介

第二十讲教程结束语演示文稿现在是1页\一共有25页\编辑于星期二(优选)第二十讲教程结束语现在是2页\一共有25页\编辑于星期二软件开发的最重要思维方式软件开发的最重要思维方式是什么?抽象!软件=对象+对象之间的关系结构化编程时代

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

温馨提示

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

评论

0/150

提交评论