所謂Data
Class是指:它們擁有一些值域(fields),以及用于訪問(讀寫)這些值域的函數(shù),除此之外一無長物。這樣的classes只是一種[不會說話的
數(shù)據(jù)容器],它們幾乎一定被其他classes過分細瑣地操控著。這些classes早期可能擁有public值域,果真如此你應該在別人注意到它們之
前,立刻運用Encapsulate Field(206)將它們封裝起來。如果這些classes內含容器類的值域(collection fields),你應該檢查它們是不是得到了恰當?shù)姆庋b;如果沒有,就運用Encapsulate Collection(208)把它們封裝起來。對于那些不該被其他classes修改的值域,請運用Remove Setting Method(300)。
然后,找出這些[取值/設值]函數(shù)(getting and setting methods)被其他classes運用的地點。嘗試以Move Method(142)把那些調用行為搬移到Data Class來。如果無法搬移整個函數(shù),就運用Extract Method(110)產(chǎn)生一個可被搬移的函數(shù)。不久之后你就可以運用Hide Method(303)把這些[取值/設值]函數(shù)隱藏起來了。