所謂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)把這些[取值/設值]函數隱藏起來了。
然后,找出這些[取值/設值]函數(getting and setting methods)被其他classes運用的地點。嘗試以Move Method(142)把那些調用行為搬移到Data Class來。如果無法搬移整個函數,就運用Extract Method(110)產生一個可被搬移的函數。不久之后你就可以運用Hide Method(303)把這些[取值/設值]函數隱藏起來了。