现在的位置: 首页 > 综合 > 正文

重构手法19:Replace Data Value with Object (以对象取代数据值)

2012年09月26日 ⁄ 综合 ⁄ 共 555字 ⁄ 字号 评论关闭

 

你有一个数据项,需要与其他数据和行为一起使用才有意义。将数据项变成对象

动机:开发初期,你往往决定以简单的数据项表示简单的情况。但是,随着开发的进行,你可能会发现,这些简单数据项不再那么简单了。如果这样的数据项只有一两个,你还可以把相关函数放进数据项所属的对象里;但是重复代码(Duplicated Code)坏味道和 依恋情结(Feature Envy)坏味道很快就会从代码中散发出来,当这些坏味道开始出现,就应该将数据值变成对象。

做法:1、为待替换数值新建一个类,在其中声明一个const字段,其类型和源类中的待替换数值类型一样。然后在新类中加入这个字段的取值函数,再加上一个接受此字段为参数的构造函数。

       2、编译。

       3、将源类中的待替换数值字段的类型改为前面新建的类。

       4、修改源类中该字段的取值函数,令它调用新类的取值函数。

       5、如果源类构造函数中用到这个待替换字段(多半是赋值动作),我们就修改构造函数,令它改用新类的构造函数来对字段进行赋值动作。

       6、修改源类中待替换字段的设置函数,令它为新类创建一个实例。

       7、编译、测试。

       8、现在,你有可能需要对新类使用 Change Value to Reference (将值对象改为引用对象)。

 

抱歉!评论已关闭.