面向對象的“六原則一法則”:
①單一職責原則
一個類只做它該做的事情。
單一職責原則本質上就是要求寫代碼要"高內聚",也就是一個代碼模塊只完成一項功能。
一個好軟件系統中的每個功能模塊,可以很容易拿到其他系統中去使用,以達到軟件複用的目的。
②開閉原則
軟件實體應當對擴展開放,對修改關閉。
即當一個軟件系統新增功能時,只需要從原系統派生出一些新類即可,而不用修改原系統的代碼。
開閉原則有兩個要點:
1)、抽象
抽象是關鍵。如果沒有抽象類或接口,那麼該系統就不易擴展。
2)、封裝可變性
把各種可變因素封裝到一個繼承結構中,如果多個可變因素混雜在一起,系統會變得雜亂無章。
③依賴倒轉原則
面向接口編程。
即聲明方法的參數類型、方法的返回值類型、變量的引用類型時,儘量用抽象類型,因為抽象類型可以被其子類型所替代。
④里氏替換原則
任何時候都可以用子類代替父類。
能用父類型的地方,就一定能用子類型。里氏替換原則用來檢查繼承關係是否合理。
⑤接口隔離原則
接口要小而專,絕不能大而全。
一個接口只描述一種能力,接口也應該是高度內聚的。
⑥合成聚合複用原則
優先使用聚合或合成關係複用代碼。
類之間簡單的說有三種關係:Is-A關係、Has-A關係、Use-A關係,分別代表繼承、關聯和依賴。
合成聚合複用原則要求優先考慮Has-A關係,而不是Is-A關係複用代碼。
⑦迪米特法則/最少知識原則
一個對象應當對其他對象有儘可能少的瞭解,即做到"低耦合"。
門面模式和調停者模式就是對迪米特法則的踐行。
閱讀更多 iT例史 的文章