重構壞味道:數(shù)據(jù)泥團

數(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ā)揮價值。

重構后

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容