《重构:改善既有代码的设计(第2版)》 ePUBw.COM 27个笔记
如果共享的数据需要更新,将其复制多份的做法就会遇到巨大的困难。
动机
Change Value to Reference
9.5
如果我想在几个对象之间共享一个对象,以便几个对象都能看见对共享对象的修改,那么这个共享的对象就应该是引用
不可变的数据结构处理起来更容易
如果将其视为值对象,我就会替换整个内部对象,新换上的对象会有我想要的属性值。
两者最明显的差异在于如何更新内部对象的属性:如果将内部对象视为引用对象,在更新其属性时,我会保留原对象不动,更新内部对象的属性;
在把一个对象(或数据结构)嵌入另一个对象时,位于内部的这个对象可以被视为引用对象,也可以被视为值对象。
动机
Change Reference to Value
9.4
可变数据是软件中最大的错误源头之一。
动机
Replace Derived Variable with Query
9.3
数据结构是理解程序行为的关键
动机
Rename Field
9.2
同一个变量承担两件不同的事情,会令代码阅读者糊涂。
如果变量承担多个责任,它就应该被替换(分解)为多个变量,每个变量只承担一个责任。
变量应该只被赋值一次。如果它们被赋值超过一次,就意味它们在函数中承担了一个以上的责任
Split Variable
9.1
动机
◆ 第9章 重新组织数据
第9章 重新组织数据