Refactoring:ImprovingtheDesignofExistingCode

更新时间:2023-05-09 07:42:04 阅读: 评论:0

Refactoring:ImprovingtheDesignofExistingCode 重构,第⼀个案例
Ch 1 重构,第⼀个案例
Ch 1
重构的第⼀个步骤永远相同:我得为即将修改的代码建⽴⼀组可靠的测试环境。
好的测试是重构的根本。
Ch 2 重构原则
重构:对于软件内部结构的⼀种调整,⽬的是在不改变软件可观察⾏为的前提下,提⾼其可理解性,降低其修改成本。
Ch 3 代码的坏味道
3.1 Duplicated Code 重复代码
3.2 Long Method 过程函数
更加积极的分解函数。
原则:每当感觉需要以注释来说明点什么的时候,我们就把需要说明 东西写进⼀个独⽴的函数,并以其⽤途命名。
函数名命名关键:在于函数“做什么”和“如何做”之间的语义距离。
3.3 Large Class 过⼤的类
3.4 Long Parameter List 过长的参数列
3.5 Divergent Change 发散式变化
3.6 Shotgun Surgery 散弹式修改
3.7 Feature Envy 依恋情节
3.8 Data Clumps 数据泥团
3.9 Primitive Obssion 基本类型偏执
3.10 Switch Statements Switch 语句
3.11 Parallel Inheritance Hierarchy 平⾏继承体系
3.12 Lazy Class 冗余类
3.13 Speculative Generality 夸夸其谈未来性
3.14 Temporary Field 令⼈迷惑的暂时字段
3.15 Message Chains 过度耦合的消息链
3.16 Middle Man 中间⼈
3.17 Inappropriate Intimacy 狎昵关系
3.18 Alternative Class with Different Intefaces 异曲同⼯的类
7.1 Move Method 搬移函数
你的程序中,有个函数与其所在的类之外的另⼀个类进⾏更多交流:调⽤后者,或被后者调⽤。
在该函数最常引⽤的类中建⽴⼀个有着类似⾏为的新函数。将旧函数变成⼀个单纯的委托函数,或是将旧函数完全移除。7.2 Move Field 搬移字段
在你的程序中,某个字段被其所在类之外的另⼀个类更多地⽤到。
在⽬标类新建⼀个字段,修改源字段的所有⽤户,令他们改⽤新字段。
7.3 Extract Class 提炼类
某个类做了应该有两个类做的事。
建⽴⼀个新类,将相关的字段和函数从旧类搬移到新类。
7.4 Inline Class 将类内联化
某个类没有做太多的事情。
将这个类的所有特性搬移到另⼀个类中,然后移除原类。
7.5 Hide Delegate 隐藏委托关系
客户通过⼀个委托类来调⽤另⼀个对象。
具体:如果某个客户先通过服务对象的字段得到另⼀个对象,然后调⽤后者的函数,那么客户就必须知晓这⼀层委托关系。
在服务类上建⽴客户所需的所有函数,⽤以隐藏委托关系。
7.6 Remove Middle Man 移除中间⼈
某个类做了过多的简单委托动作
让客户直接调⽤委托类。
7.7 Introduce Foreign Method 引⼊外加函数
你需要为提供服务的类增加⼀个函数,但你⽆法修改这个类。

本文发布于:2023-05-09 07:42:04,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/873445.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:函数   字段   委托
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图