第二十讲 c+教程 结束语.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二十讲c教程结束语

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

文档评论(0)

woai118doc + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档