1.開閉原則:
是指一個軟件實體如類焕盟,模塊及函數(shù)應(yīng)該對擴展開放對修改關(guān)閉拷沸。
2.依賴導(dǎo)致原則:
是指設(shè)計代碼結(jié)構(gòu)時椭符,高層代碼不應(yīng)該依賴底層模塊,二者都應(yīng)該依賴其抽象贸诚。
備注:以抽象為基準(zhǔn)的架構(gòu)比細節(jié)為基準(zhǔn)的架構(gòu)要穩(wěn)定的多方庭,所以我們拿到需求之后厕吉,要面向接口編程,先頂層再細節(jié)來設(shè)計代碼結(jié)構(gòu)械念。
3.單一職責(zé)原則:
是指不要存在多于一個導(dǎo)致類變更的原因头朱。
(字面意思)
4.接口隔離原則:
是指用多個專門的接口,而不是用一個總接口龄减,客戶端不應(yīng)該依賴它不需要的接口项钮。
5.迪米特原則:
是指一個對象應(yīng)該對其他對象保持最少了解,又叫最少知道原則希停,盡量降低類與類之間的耦合寄纵。
6.里式替換原則:
是指如果對每一個類型為 T1 的對象 o1,都有類型為 T2 的對象 o2,使得以 T1 定義的所有程序 P 在所有的對象 o1 都替換成o2 時,程序 P 的行為沒有發(fā)生變化脖苏,那么類型 T2 是類型 T1 的子類型
(可以理解為一個軟件實體如果適用一個父類的話程拭,那一定是適用于其子類,所有引用父類的地方必須能透明地使用其子類的對象棍潘,子類對象能夠替換父類對象恃鞋,而程序邏輯不變)
7.合成復(fù)用原則:
是指盡量使用對象組合/聚合,而不是繼承關(guān)系達到復(fù)用的目的亦歉。
總結(jié):在設(shè)計開發(fā)中恤浪,并不是一定要求所有代碼都遵循設(shè)計原則樱拴,我們要考慮速址,人力,成本竖独,時間赛蔫,質(zhì)量并不刻意準(zhǔn)求完美砂客,要在適當(dāng)?shù)膱鼍白裱O(shè)計原則,體現(xiàn)的是一種平衡取舍呵恢,幫助我們設(shè)計出更加優(yōu)雅的代碼質(zhì)量鞠值。