重构之重新组织数据

1.Self Encapsulate Field(自封装值域)

为这个值域建立取值/设值函数(getting/setting methods),并且只以这些函数来访问值域。

2.Replace Data Value with Object(以对象取代数据值)

将数据项变成一个对象。

3.Change Value to Reference(将实值对象改为引用对象)

Value Object改为Reference Object

4.Change Reference to Value(将引用对象改为实值对象)

Reference Object改为Value Object

5.Replace Array with Object(以对象取代数组)

以对象替换数组。对于数组的每个元素,以一个值域表示。 

6.Duplicate Observed Data(复制[被监视数据]

[被监视数据]拷贝到一个domain object中。建立一个Observer模式,用以对domain objectGUI Object内的重复数据进行同步控制(Sync)。

7.Change Unidirectional Association to Bidirectional(将单向关联改为双向)

添加一个反向指针,并使修改函数(modifiers)能够同时更新两条连接。

8.Change Bidirectional Association to Unidirectional

将双向关联改为单向。

9.Replace Magic Number with Symboic Constant(以符号常量/字面常量取代魔法数)

创造一个常量,根据其意义为它命名,并将上述的字面数值替换为这个常量。

10.Encapsulate Field(封装值域)

将它声明为private,并提供相应的访问函数(accessors)。

11.Encapsulate Collection(封装群集)

让这个函数返回该群集的一个只读映件(read-only view),并在这个class中提供[添加/移除]add/remove)群集元素的函数。

12.Replace Record with Data Class(以数据取代记录)

为该记录(Record)创建一个[]数据对象(dumb data object)。

13.Replace Type Code with Class(以类别取代型别码)

以一个新的class替换该数值型别码(type code)。

14.Replace Type with Subclasses(以子类取代型别码)

以一个subclass取代type code.

15.Replace Type Code with State/Strategy(以state/Strategy取代型别码)

State Object(专门用来描述状态的对象)取代type code.

16.Replace Subclass with Fields(以值域取代子类)

修改这些函数,使它们返回superclass中的某个(新增)的值域,然后销毁subclass.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值