软件详细设计-目录.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文档。上传文档
查看更多
软件详细设计-目录.ppt

软件详细设计 目录 1.上节回顾 2.优秀软件设计过程 3.高质量软件设计 4.坏味道-重构 5.推荐书籍 1.1什么是好的软件设计? 1.2现状--噩梦迷途 软件作用越来越小 结构越来越复杂 维护成本高 维护难度大 1.3改变--设计师的技艺 高质量设计 预先设计 重构到优秀 临摹学习 1.4坏味道-重构 整洁的代码 代码坏味道 重构的时机 重构的着手点—代码的坏味道! 优秀软件设计过程 优秀设计的简易三步骤 1:让你的软件做客户要他做的事情 2:运用基本的设计原则/模式来增加软件灵活性 3:努力实现可维护、可重用的设计 优秀软件设计过程—设计原则 KISS原则 Keep It Simple and Stupid 简单的设计使得软件产品易于开发,易于维护 软件有两种方式。一种是设计得尽量简单,并且明显没有缺陷。另一种方式是设计得尽量复杂,并且没有明显缺陷 优秀软件设计过程—KISS原则 考虑能够工作的最简单的事情 选择一种我们能够实际得到的、最简单的解决方案 你将不需要他 只有在有证据,或者有十分明显的迹象表明引入新的基础结构比现有软件更合算时,才引入这些基础结构 一次,并且只有一次 无论哪里发现的重复代码,都要消除他们 以上原则来源于极限编程理论 优秀软件设计过程—设计原则 面向对象设计原则—Solid原则 单一职责原则(SRP) 变化分离,即对一个类而言,应该仅有一个引起它变化的原因 “开-闭”原则(OCP) 对可变性封装,软件应该是可以扩展的,但是不可修改的 里氏替换原则(LSP) 如何进行继承,即子类型必须能够替换掉他们的基类型 接口隔离原则(ISP) 恰当的划分角色和接口 依赖倒置原则(DIP) 针对接口编程,抽象不应该依赖于细节,细节应该依赖于抽象 优秀软件设计过程—设计原则 GRASP通用职责分配软件模式(General Responsibility Software Patterns) 创建者 信息专家 低耦合 控制器 高内聚 多态性 纯虚构 间接性 防止变异 优秀软件设计过程—设计模式 工厂模式 单例模式 策略模式 模版方法 装饰模式 迭代器模式 …… …… 优秀软件设计过程 设计模式的价值 有经验的面向对象设计者的确能做出良好的设计,而新手则面对众多选择无从下手,这又是为什么呢 有经验的设计者知道:不是解决任何问题都要从头做起。他们更愿意复用以前使用过的解决方案。当找到一个好的解决方案,他们会一遍又一遍地使用 优秀软件设计过程—重构 何谓重构 (名词)对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本 (动词)使用一系列重构手法,在不改变软件可观察行为的前提下,调整其机构 优秀软件设计过程—重构 为何重构 改进软件设计 使软件更容易理解 帮助找到bug 提高编程速度 优秀软件设计过程—重构 何时重构 三次法则 事不过三,当第三次出现相同或类似的事情时,重构 添加功能时重构 原有的设计无法轻松添加特性时,重构 修补错误时重构 如果代码有错误,而无法方便找到时,重构 复审代码时重构 代码不容易被别人理解时,重构 优秀软件设计过程—重构 重构与模式 重构与设计 重构与性能 优秀软件设计过程—重构 代码的坏味道 重复代码 过长函数 过大的类 过长的参数列 发散式变化 过多的注释 Switch 夸夸其谈未来性 10.11.12.13.14…………. 优秀软件设计过程—重构 重构方法 提炼函数 搬移函数 搬移值域 以多态取代条件语句 将查询函数和修改函数分离 提炼超类/子类/接口 以子类取代型别码 以委托取代继承 其他 重构案例 需求: 这是一个影片出租店的程序,计算每一位顾客的消费金额并打印报表,操作者告诉程序:顾客租了哪些影片、租期多长,程序便根据租赁时间和影片类型算出费用。影片分为三类:普通片、儿童片和新片,除了计算费用,还要为常客计算点数,点数会随着【租片种类是否为新片】而有不同。 重构案例 评价 新的需求 客户希望以HTML格式打印报表 一般做法:编写全新的打印方法,大量重复原有打印代码 问题:大量代码重复,不能服用 计费标准发生变化 一般做法:同时修改两个打印方法 问题:两个方法修改内容一样,复制/粘贴造成潜在的威胁 客户希望改变影片分类规则(还不知道怎么改) 一般做法:修改影片类,增加影片类型,在打印报表时增加判断逻辑 问题:一点变化引起多处修改 重构案例 分解并重组statement() 搬移金额计算代码 提炼常客积分代码 去除临时变量 运用多态取代与价格相关的条件逻辑 高质量软件设计 系统质量属性 1:运行时期的质量属性 性能 安全

您可能关注的文档

文档评论(0)

189****0315 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档