單一職責(zé)原則
一個對象(方法)只做一件事情
優(yōu)點
- 降低了單個類或者對象的復(fù)雜度,按照職責(zé)把對象分解成更小的粒度,這樣有助于代碼復(fù)用,當(dāng)一個職責(zé)需要變更的時候,不會影響到其他的職責(zé)。
缺點
- 明顯的是會增加代碼的復(fù)雜度,當(dāng)我們按照職責(zé)把對象分解成更小的粒度之后,實際也增加這些對象之間的相互練習(xí)難度
最少知識原則
盡量減少對象之間的交互,如果兩個對象之間不必要彼此直接通信,那么這個兩個對象就不要直接發(fā)生相互聯(lián)系,常見的是引入第三者來承擔(dān)兩者的通信,例如中介者模式和外觀模式
開放封閉原則(OCP)
軟件實體(類、模塊、函數(shù))應(yīng)該是可以擴展,但是不可以修改
找出變化的地方,然后把變化封裝起來(并沒有實際的模板教導(dǎo)我們該怎樣實現(xiàn)它,還是需要靠自己的體會以及經(jīng)驗去感受和實踐其中的原則)
以上幾個原則,建議參考書本進行理解,并對照案例體會,重復(fù)體會,相信會有屬于自己的領(lǐng)悟
代碼重構(gòu)
- 提煉函數(shù)
- 合并重復(fù)的條件片段
- 把條件分支語句提煉成函數(shù)
- 合理使用循環(huán)
- 提前讓函數(shù)退出代替嵌套條件分支
- 傳遞對象參數(shù)代替過長的參數(shù)列表
- 盡量減少參數(shù)數(shù)量
- 少用三目運算符
邏輯簡單清晰可以使用三目運算符,如果過于復(fù)雜不建議使用 - 合理使用鏈?zhǔn)秸{(diào)用
- 分解大類型
參考書籍:js設(shè)計模式與開發(fā)實踐