數(shù)據(jù)泥團
癥狀
數(shù)據(jù)泥團中所有的數(shù)據(jù)字段就像小孩子,總喜歡成群結對地的待在一塊
如果刪掉眾多數(shù)據(jù)字段中的一項,其他數(shù)據(jù)字段因而失去意義,就應該為它們產(chǎn)生一個新對象

數(shù)據(jù)泥團
病因
我們聽說過:一個類應該是一個清楚的抽象,處理一些明確的責任。但是實際工作中,類會不斷成長擴展。會在這加點新功能,那里加點數(shù)據(jù),讓本應該在一起的抽象散落在一個類的多個數(shù)據(jù)字段。
導致的健康問題
治療
找出這些數(shù)據(jù)以字段形式出現(xiàn)的地方,把他們抽象成本該屬于他們自己的類

重構手法
- 如果一個類里有很多有關系的數(shù)據(jù)Field,那么就要考慮為這些有關系的數(shù)據(jù)建立一個新家
嘗試運用 Extract Class 創(chuàng)建數(shù)據(jù)新對象。
B站實戰(zhàn)視頻 - 如果函數(shù)參數(shù)應用很多有關系的Field
嘗試運用 Introduce Parameter Object 考慮讓這些分散的參數(shù)變成參數(shù)對象
B站實戰(zhàn)視頻-參考過長的參數(shù)列
*如果一個函數(shù)引用的來自同一個對象的若干個參數(shù)作為參數(shù),可以考慮引用對象,因為如果被調(diào)用的函數(shù)改變參數(shù),必須修改這個函數(shù)的所有引用的地方
嘗試運用 Preserve Whole Object 保持對象完整
B站實戰(zhàn)視頻-參考過長的參數(shù)列
康復
所有的分散在外面的數(shù)據(jù)字段,擁有的新的對象,得到新對象后,你就可以著手尋找依戀情結,然后相關的行為移動到這個新對象中。所有的類都將在它們小小的社會中充分發(fā)揮價值。

重構后