重构:改善既有代码的设计 第七章 读书笔记

第7章 封装
7.1 封装记录(Encapsulate Record)

  曾用名:以数据类取代记录;

  做法:1- 对持有记录的变量使用封装变量,将其封装到一个函数中。 记得为这个函数取一个容易搜索的名字。

               2- 创建一个类,将记录包装起来,并将记录变量的值替换为该类的一个实例。然 后在类上定义一个访问函数,用于返回原始的记录。修改封装变量的函数,令 其使用这个访问函数。

7.2 封装集合(Encapsulate Collection)

  动机:集合的成员变量可以直接被修改,而封装它的类则全然不知,无法介入。

为避免此种情况,我会在类上提供一些修改集合的方法——通常是“添 加”和“移除”方法。这样就可使对集合的修改必须经过类,当程序演化变大时, 我依然能轻易找出修改点。

7.3 以对象取代基本类型(Replace Primitive with Object)

 

 

7.4 以查询取代临时变量(Replace Temp with Query)

 

 

7.5 提炼类(Extract Class)


7.6 内联类(Inline Class)

  和提炼类相反的操作
7.7 隐藏委托关系(Hide Delegate)

      代理操作,还是直接引用

 

 


7.8 移除中间人(Remove Middle Man)

  和隐藏委托关系是相反的操作
7.9 替换算法(Substitute Algorithm)

  使用算法简化代码

posted @ 2022-11-30 10:42  上海小墨子  阅读(25)  评论(0编辑  收藏  举报