所谓Data
Class是指:它们拥有一些值域(fields),以及用于访问(读写)这些值域的函数,除此之外一无长物。这样的classes只是一种[不会说话的
数据容器],它们几乎一定被其他classes过分细琐地操控着。这些classes早期可能拥有public值域,果真如此你应该在别人注意到它们之
前,立刻运用Encapsulate Field(206)将它们封装起来。如果这些classes内含容器类的值域(collection fields),你应该检查它们是不是得到了恰当的封装;如果没有,就运用Encapsulate Collection(208)把它们封装起来。对于那些不该被其他classes修改的值域,请运用Remove Setting Method(300)。
然后,找出这些[取值/设值]函数(getting and setting methods)被其他classes运用的地点。尝试以Move Method(142)把那些调用行为搬移到Data Class来。如果无法搬移整个函数,就运用Extract Method(110)产生一个可被搬移的函数。不久之后你就可以运用Hide Method(303)把这些[取值/设值]函数隐藏起来了。