1.1單一職責原則
案例1:將不區(qū)分類屬性與行為的類,如IUserInfo接口拆分為BO,BIZ兩個接口。需要使用BO,就將接口對象轉(zhuǎn)換為具體的接口。

定義:單一職責原則(SRP,Single Responsibility Principe)的定義是:應(yīng)該有且僅有一個原因引起類的變更。
案例2:電話撥號類的劃分
單一職責原則的優(yōu)勢:類的復雜性降低了,可讀性增加,可維護性提高,變更引起的風險降低
注意 單一職責原則提出了一個編寫程序的標準,用“職責”或“變化原因”來衡量接口或類設(shè)計得是否優(yōu)良,但是“職責”和“變化原因”都是不可度量的,因項目而異,因環(huán)境而異。
案例3:高粒度的“修改用戶信息方法”!

與現(xiàn)實的妥協(xié):

1.2里氏替換原則
OO中繼承的優(yōu)點:代碼共享,減少了創(chuàng)建類的工作量;提高了代碼的重用性;子類與父類有相似也有不同;提高了代碼的可擴展性,比如版本升級產(chǎn)生的向下兼容;提高了產(chǎn)品與項目的開放性;
OO中繼承的缺點:繼承是侵入性的,只要繼承必須擁有父類的屬性與方法;繼承也是子類的約束,降低了代碼的靈活性;繼承增加了父類子類的耦合性,當父類修改變量或方法時,要考慮子類的修改
里氏替換原則的定義:所有引用基類的地方必須能透明地使用其子類的對象
定義包含的四層規(guī)范:
第一,子類必須完全實現(xiàn)父類的方法

第二,子類出現(xiàn)的地方并不一定可以被父類替換。
第三,子類方法可以放大參數(shù)范圍
第四,子類方法可以縮小返回值范圍
里氏替換原則的優(yōu)點:增加程序的健壯性,版本升級時仍有很好的兼容性;即使增加了子類,原有類也可以繼續(xù)運行;在實際項目中,每個子類對應(yīng)不同的業(yè)務(wù)含義,使用父類作為參數(shù),傳遞不同的子類完成不同的業(yè)務(wù)邏輯