accessor:访问者,存储器——在本文翻译为“函数”
dumb:哑
domain class:用以处理业务逻辑
presentation class:用以处理”数据表现形式“
business logic:业务逻辑
unidirectional:单向的
bidirectional:双向的
collection:群集
动机:
“间接访问变量”:支持更灵活的数据获取方式,如lazy Initialization(意思是只有用到值时,才对它进行初始化。)
“直接访问变量”:代码比较容易阅读,不需要停下来说:“啊,这只是个取值函数”。
选择:1、代码规范,按照团队中大多数人的做法去做。
2、个人比较喜欢“直接访问变量”,直到这种方式带来麻烦为止。
martin(作者)的例子:你想获取superclass中的field,却又想在subclass中将该field改为计算后的值,这就最该使用Self Encapsulate Field。
我自己的例子:我一般会把field设置成private,如果外部变量,需要用到此field的时候,我就会用Self Encapsulate Field。或者field的值有变化的时候,用Self Encapsulate Field。
开发初期,我们也许会使用基本数据类型表示简单的行为。例如:你可能会用一个字符串表示电话号码,但是随后可能会出现电话号码的“格式化“,”验证“,”抽取区号“之类的特殊行为。——这时候我们就需要一个新类。
动机:
数组常用于一组相似对象。如果数组中的元素不同,很难明白数组中的第一个元素是人名这样的约定。对象就不同了,可以通过值域名称和函数名称传达这样的信息。——这样无须死记,无须注释。
动机:
相关推荐
第8章 重新组织数据 169 8.1 Self Encapsulate Field(自封装字段) 171 8.2 Replace Data Value with Object(以对象取代数据值) 175 8.3 Change Value to Reference(将值对象改为引用对象) 179 8.4 ...
第8章 重新组织你的数据 8.1 Self Encapsulate Field(自封装值域) 8.2 Replace Data Value with Object(以对象取代数据值) 8.3 Change Value to Reference(将实值对象改为引用对象) 8.4 Change Reference to ...
第8章 重新组织你的数据 8.1 Self Encapsulate Field(自封装值域) 8.2 Replace Data Value with Object(以对象取代数据值) 8.3 Change Value to Reference(将实值对象改为引用对象) 8.4 Change Reference to ...
2.6 重构与设计······ ·· · · ······· ·· ···· · ··· ·· · · ··· ·· ·· ····· · · · ·· ·· ·· ··· ·· ·· · ·· ·· ···· · ···· · · ·...
作者:Martin Fowler,Kent Beck,John ...章节八 重新组织数据 章节九 简化条件表达式 章节十 简化函数调用 章节十一 处理概括关系 章节十二 大型重构 章节十三 重构,复用与现实 章节十四 重构工具 章节十五 集成
Chapter 8:Organizing Data 组织数据 Self Encapsulate Field 自封装字段 Replace Data Value with Object 用对象代替数据值 Change Value to Reference 将值对象改为引用对象 Change Reference to...
Chapter 8:Organizing Data 组织数据 Self Encapsulate Field 自封装字段 Replace Data Value with Object 用对象代替数据值 Change Value to Reference 将值对象改为引用对象 Change Reference to...
承接上文的PHP 杂谈《重构-改善既有代码的设计》之 重新组织你的函数继续重构方面的内容。 这章主要针对数据的重构。 1、争论的声音——直接访问Field还是通过函数(Accessor)访问Field 2.修改Array为...
第8章 重新组织数据169 8.1 SelfEncapsulateField(自封装字段)171 8.2 ReplaceDataValuewithObject(以对象取代数据值)175 8.3 ChangeValuetoReference(将值对象改为引用对象)179 8.4 ChangeReferencetoValue...
第8章 重新组织数据169 8.1 SelfEncapsulateField(自封装字段)171 8.2 ReplaceDataValuewithObject(以对象取代数据值)175 8.3 ChangeValuetoReference(将值对象改为引用对象)179 8.4 ChangeReferencetoValue...
Chapter 8:Organizing Data 组织数据 Self Encapsulate Field 自封装字段 Replace Data Value with Object 用对象代替数据值 Change Value to Reference 将值对象改为引用对象 Change ...
第8章 重新组织数据169 8.1 SelfEncapsulateField(自封装字段)171 8.2 ReplaceDataValuewithObject(以对象取代数据值)175 8.3 ChangeValuetoReference(将值对象改为引用对象)179 8.4 ChangeReferencetoValue...
第 8 章:重新组织你的数据(Organizing Data) 第 9 章:简化条件表达式(Simplifying Conditional Expressions) 第 10 章:简化函数调用(Making Method Calls Simpler) 第 11 章:处理概括关系...
Chapter 8:Organizing Data 组织数据 Self Encapsulate Field 自封装字段 Replace Data Value with Object 用对象代替数据值 Change Value to Reference 将值对象改为引用对象 Change Reference to...
6、3重新组织你的数据(OrganizingData) 6、4简化条件表达式(SimplifyingConditionalExpressions) 6、5简化函数呼叫(MakingMethodCallsSimpler) 6、6处理概括关系(DealingwithGeneralization) 7...
第8章 重新组织数据169 8.1 SelfEncapsulateField(自封装字段)171 8.2 ReplaceDataValuewithObject(以对象取代数据值)175 8.3 ChangeValuetoReference(将值对象改为引用对象)179 8.4 ChangeReferencetoValue...