重构之美-培训文档.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文档。上传文档
查看更多
重构之美-培训文档

重新组织函数– 函数到对象 以函数对象取代函数: 有一个大函数,对局部的使用让你无法分解出独立的函数。将这个函数放进一个单独的对象中,如此一来局部变量就变成了对象内的字段。然后你可以在同一个对象中将这个大函数分解为小函数。 这个很有用,且难,单独列出。参见重构P135 对象之间搬移特性 迁移的依据:决定把责任放在哪里? 搬移函数:从不常用类移到常用类 搬移字段:某个字段更多的被另一个类引用,迁移到哪里 提炼类:多个责任的类,拆分之 引入本地扩展:一个服务类需要额外的函数,但不能修改,建立一个继承源类的子类 重新组织数据 面向对象的一大特性:允许你重新定义数据类型 封装字段:设定字段私有,建立取值、设值函数改变字段值。解除类之间字段操作的紧耦合关系。也更灵活做更多工作。 以对象取代数据值:几个数据项组合使用,就定义一个对象包含组合字段。 对象取代数组。这在js中作用更明显。 已常量或枚举取代魔法数(简单文字、数字)。 简化表达式 多个If/else:每个处理提炼出独立函数或使用多态函数。 复杂的条件表达式:合并类似的条件,将条件表达式定义为函数。 合并重复条件片段 Return取代嵌套条件表达式。减少后续的逻辑混乱。 简化函数调用 给类、函数取个好名字:这是计算机语言和人类社会语言的沟通桥梁。 代码大全中用整个一章来讲命名的重要性 将查询函数和修改函数分离 保持对象完整性:当用到对象部分数据时,传递整个对象 引入参数对象。 引入工厂方法 处理继承关系 字段上移、下移 函数上移、下移 提炼子类 提炼超类 提炼接口 重构与设计模式 参考重构与模式一书 重构降低了过度设计,能在不精细化设计前提下,完成任务 重构趋向模式,清除不必要的模式 自己经验:设计模式没研究入门,重构使用了一下,好像设计模式开始入门了。 对设计模式的不满 书上说:感觉设计模式没用或无从下手,是因为对设计模式不熟悉,没应用。 学习设计模式是继承前人经验,我也在努力。 模式与重构—创建 用工厂方法替换构造函数。 将实例化过程移入工厂类: 在工厂方法中引入多态创建:如vo和do的赋值 使用单例简化数据访问:如配置文件的读取 模式与重构—简化 组合方法:使方法内部的逻辑都在同一层次上。 用策略模式替换条件逻辑:?每个处理一个变体 装饰功能移动到装饰器类中:代码向类的核心职责提供装饰功能,去除公用重复部分。 Java文件处理类? 字符处理的加密和过滤功能可以移入装饰器。 用命令模式替换条件调度程序:boss中用到 组合模式替换树形字符串创建:定义节点对象,避免重复操作 模式与重构—泛化 子类中类似方法执行类似步骤:提炼模板方法,上移到超类。在oss中用到。 用门面模式兼容新系统和遗留系统。OSS中用到,门面处理boss\运维\ 代理的数据交互层。门面模式定义:提供一个统一的接口去访问多个子系统的多个不同的接口,它为子系统中的一组接口提供一个统一的高层接口。使用子系统更容易使用。 模式与重构—聚集 长字符串的传递用自定义数据对象表示。 观察者模式如何实现的? 重构工具 Jsp的include Eclipse的工具 实际中的重构 重构必须实施才有用。重构方法和设计模式一样,如同游泳指南。不使用就没有任何意义。 业务系统维护中,一切的前提是数据 分层原则必须遵守,整理各层代码,每层技术和用途不同 Jsp/js,配置文件,各类语言文件拆分,发布时的js合并压缩,目录分类,都可以重构 先保持系统不变,熟悉一点重构一点,测试一点 重构协助加深业务和程序逻辑理解 实际中其他问题 不要为难,只要离开时,比来时整洁 破窗理论 勇于下载和关联开源项目源代码 加深理解使用的具体技术:从使用方法到源码 大家如何重构的 请大家分享经验 维护和编写可维护的代码 重构 概念提出者与倡导者 Kent Beck:重构概念提出者,Junit的原创者,极限编程的创建人 Martin Fowler:重构一书的作者 Erich Gamma:设计模式作者,Eclipse开发工具负责人 什么是重构 重构(refactoring)是这样一个过程:在不改变代码外在行为的前提下,调整程序的内部结构,提高可理解性,降低修改成本。 不变的百度桌面,变化的百度技术 升级的windows系统,基本不变的界面 推测 有生命力的软件,界面一成不变,用户量,性能,实际功能不断提升。 因此,推测。。。有生命力的软件都需要重构、重写或开始就设计优良,容易扩展.后者可能性不大 我们的系统现状 ICP系统从2007年一直使用,多人维护,不同系统使用,多版本接口升级。 ICP系统的一个实现类。 变量和函数声明要5屏才能容纳下. 现有代码的问题:超长代码(

文档评论(0)

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

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

1亿VIP精品文档

相关文档