你有一个数据项,需要与其他数据和行为一起使用才有意义。将数据项变成对象。
动机:开发初期,你往往决定以简单的数据项表示简单的情况。但是,随着开发的进行,你可能会发现,这些简单数据项不再那么简单了。如果这样的数据项只有一两个,你还可以把相关函数放进数据项所属的对象里;但是重复代码(Duplicated Code)坏味道和 依恋情结(Feature Envy)坏味道很快就会从代码中散发出来,当这些坏味道开始出现,就应该将数据值变成对象。
做法:1、为待替换数值新建一个类,在其中声明一个const字段,其类型和源类中的待替换数值类型一样。然后在新类中加入这个字段的取值函数,再加上一个接受此字段为参数的构造函数。
2、编译。
3、将源类中的待替换数值字段的类型改为前面新建的类。
4、修改源类中该字段的取值函数,令它调用新类的取值函数。
5、如果源类构造函数中用到这个待替换字段(多半是赋值动作),我们就修改构造函数,令它改用新类的构造函数来对字段进行赋值动作。
6、修改源类中待替换字段的设置函数,令它为新类创建一个实例。
7、编译、测试。
8、现在,你有可能需要对新类使用 Change Value to Reference (将值对象改为引用对象)。