當(dāng)有人說 " 噢, 我想我們總有一天需要做這件事", 并因而企圖以各式各樣的鉤子和特殊情況來處理一些非必要的事情, 這種壞味道就出現(xiàn)了. 如果所有裝置都會(huì)被用到, 那就值得那么做,如果用不到, 就不值得. 用不上的裝置只會(huì)擋你的路, 所有,把它搬吧.
1,如果你的某個(gè)抽象類其實(shí)沒有太大作用, 請運(yùn)用 *Collapse Hierarchy(平移繼承體系)*.
2,不必要的委托可運(yùn)用 *Inline Class(內(nèi)聯(lián)類)*除掉.
3,如果函數(shù)的某些參數(shù)未被用上, 可對(duì)它實(shí)施 *Remove Parameter(移除參數(shù))* .
4,如果函數(shù)名稱帶有多余的抽象意味, 應(yīng)該對(duì)它實(shí)施 *Rename Method(函數(shù)更名)*, 讓它現(xiàn)實(shí)一些.
如果函數(shù)或類的唯一用戶是測試用例, 這就飄出了這種壞味道.
如果你發(fā)現(xiàn)這樣的函數(shù)或者類, 請把他們連同其測試用例一并刪除.
但如果它們用途是幫助測試用例檢測正當(dāng)功能, 當(dāng)然必須刀下留人.