面向對象有哪“六原則一法則”

面向對象的“六原則一法則”:

①單一職責原則

一個類只做它該做的事情。

單一職責原則本質上就是要求寫代碼要"高內聚",也就是一個代碼模塊只完成一項功能。

一個好軟件系統中的每個功能模塊,可以很容易拿到其他系統中去使用,以達到軟件複用的目的。

②開閉原則

軟件實體應當對擴展開放,對修改關閉。

即當一個軟件系統新增功能時,只需要從原系統派生出一些新類即可,而不用修改原系統的代碼。

開閉原則有兩個要點:

1)、抽象

抽象是關鍵。如果沒有抽象類或接口,那麼該系統就不易擴展。

2)、封裝可變性

把各種可變因素封裝到一個繼承結構中,如果多個可變因素混雜在一起,系統會變得雜亂無章。

③依賴倒轉原則

面向接口編程。

即聲明方法的參數類型、方法的返回值類型、變量的引用類型時,儘量用抽象類型,因為抽象類型可以被其子類型所替代。

④里氏替換原則

任何時候都可以用子類代替父類。

能用父類型的地方,就一定能用子類型。里氏替換原則用來檢查繼承關係是否合理。

⑤接口隔離原則

接口要小而專,絕不能大而全。

一個接口只描述一種能力,接口也應該是高度內聚的。

⑥合成聚合複用原則

優先使用聚合或合成關係複用代碼。

類之間簡單的說有三種關係:Is-A關係、Has-A關係、Use-A關係,分別代表繼承、關聯和依賴。

合成聚合複用原則要求優先考慮Has-A關係,而不是Is-A關係複用代碼。

⑦迪米特法則/最少知識原則

一個對象應當對其他對象有儘可能少的瞭解,即做到"低耦合"。

門面模式和調停者模式就是對迪米特法則的踐行。

面向對象有哪“六原則一法則”



分享到:


相關文章: