摘要:对象应该直接访问其中的数据,还是通过访问函数来访问?
- 常选择“直接访问”方式,任何时候进行这项重构(self encapsulate field)都是很简单的
- eplace value with object:将“哑”数据变成善表达的对象
- hange value to reference:有太多地方需要这一类对象,可用此方法将其变为引用对象
- eplace array with object:看到一个数组的行为方式很像一个数据结构。将数组变成对象,从而使这个数据结构更清晰地显露出来。move method,为这个对象加入相应行为,真正的好处才得以体现
- eplace magic number with symbolic constant:处理魔法数(带有特殊含义的数字)
- hange unidirectional association to bidirectional:将对象之间的单向关联变成双向关联
- hange bidirectional association to undirectional:将双向关联变成单向关联
- uplicate Observed data:GUI类处理不该其处理的业务:将处理业务逻辑的行为移到合适的领域类去,需要在领域类中保存这些逻辑的相关数据。一般,不喜欢重复数据,但这是一个意外,这里的重复数据不可避免
- ncapsulate field:封装类中公开的数据
- ncapsulate collection:封装类中公开的集合。集合有其特殊协议
- eplace recorde with data class:如果一整条记录都被裸露在外
- ype code:类型码,特殊数值。“与实例所属之类型相关的某些东西”。通常以枚举形式出现。通常以static final 整数实现。
- eplace type code with class:应用于:用来表现某种信息,且不会改变所属类型的行为。可以提供更好的类型检查和更好的平台(在未来方便地将相关的行为添加进去)
- eplace type code with subclasses :如果当前类型的行为受到类型码的影响
- eplace type code with state/strategy:更复杂的情况