• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

重构章7读书笔记

武飞扬头像
pimkle
帮助2

《重构:改善既有代码的设计(第2版)》 ePUBw.COM 38个笔记

如果我发现做一件事可以有更清晰的方式,我就会用比较清晰的方式取代复杂的方式

动机

Substitute Algorithm

7.9

每当客户端要使用受托类的新特性时,你就必须在服务端添加一个简单委托函数

是有代价的

封装受托对象

Remove Middle Man

7.8

封装”意味着每个模块都应该尽可能少了解系统的其他部分。如此一来,一旦发生变化,需要了解这一变化的模块就会比较少

动机

Hide Delegate

7.7

如果一个类不再承担足够责任,不再有单独存在的理由

动机

Inline Class

7.6

如果你发现子类化只影响类的部分特性,或如果你发现某些特性需要以一种方式来子类化,某些特性则需要以另一种方式子类化

类往往因为太大而不易理解

动机

Extract Class

如果我正在分解一个冗长的函数,那么将变量抽取到函数里能使函数的分解过程更简单,

Replace Temp with Query

7.4

Replace Primitive with Object

7.3

避免直接修改集合

动机

7.2 封装集合(Encapsulate Collection)

比如可以修改getRawDataOfCustomers函数,让其返回一份数据的深复制的副本

如何确认

对象可以隐藏结构的细节

它强迫我清晰地区分“记录中存储的数据”和“通过计算得到的数据”。

简单的记录型结构也有缺陷,

动机

7.1 封装记录(Encapsulate Record

但过多隐藏也会导致冗余的中间接口,此时我就需要它的反向重构——移除中间人

◆ 第7章 封装

分解模块时最重要的标准,也许就是识别出那些模块应该对外界隐藏的小秘密了

这篇好文章是转载于:编程之路

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 编程之路
  • 本文地址: /boutique/detail/tanhgiijif
系列文章
更多 icon
同类精品
更多 icon
继续加载