煙熏鯡魚(臭臭)
指那些已經(jīng)被添加了太多屬性或者方法的缚够,難以維護(hù)的的函數(shù)或類杭朱。通常這種情況不是突然出現(xiàn)的术唬,而是隨著代碼進(jìn)化而不斷積累抑诸,特別是在沒有人專門維護(hù)代碼的時(shí)候烂琴。
數(shù)據(jù)重復(fù)
癥狀
在代碼的不同地方出現(xiàn)包含相同變量的代碼(比如,數(shù)據(jù)庫(kù)連接參數(shù))蜕乡。這些數(shù)據(jù)應(yīng)該通過 class 進(jìn)行封裝奸绷。
原因
出現(xiàn)數(shù)據(jù)重復(fù),通常是因?yàn)椴顒诺拇a結(jié)構(gòu)层玲,或者“復(fù)制粘貼型開發(fā)”導(dǎo)致的号醉。
如果你想確定代碼中的某些數(shù)據(jù)是否有用,最簡(jiǎn)單的辦法就是刪除它們辛块,然后看看程序是否能正常工作畔派。如果不能,那就意味著你該重構(gòu)代碼了润绵。
解決辦法
當(dāng)一個(gè)類干了兩個(gè)類的活兒的時(shí)候:

應(yīng)該考慮創(chuàng)建一個(gè)新 class 將相關(guān)的屬性及方法拆分出去

多個(gè)方法接受相同的一組參數(shù)

image
使用這些參數(shù)構(gòu)建新的對(duì)象

image
多個(gè)方法接受相同的一組參數(shù)

image
使用這些參數(shù)構(gòu)建新的對(duì)象

image
收益
- 改善代碼結(jié)構(gòu)线椰,從而使它更容易理解。對(duì)特定數(shù)據(jù)的修改集中到了一個(gè)地方尘盼,而不是雜亂的分散于代碼各處憨愉。
- 縮減代碼量