面向對象的基本設計原則 S.O.L.I.D

單一職責(Single Responsibility),類或者對象最好是隻有單一職責,在程序設計中如果發現某個類承擔着多種義務,可以考慮進行拆分。

開關原則(Open-Close, Open for extension, close for modification),設計要對擴展開放,對修改關閉。換句話說,程序設計應保證平滑的擴展性,儘量避免因爲新增同類功能而修改已有實現,這樣可以少產出些迴歸(regression)問題。

里氏替換(Liskov Substitution),這是面向對象的基本要素之一,進行繼承關係抽象時,凡是可以用父類或者基類的地方,都可以用子類替換。

接口分離(Interface Segregation),我們在進行類和接口設計時,如果在一個接口裏定義了太多方法,其子類很可能面臨兩難,就是隻有部分方法對它是有意義的,這就破壞了程序的內聚性。對於這種情況,可以通過拆分成功能單一的多個接口,將行爲進行解耦。在未來維護中,如果某個接口設計有變,不會對使用其他接口的子類構成影響。

依賴反轉(Dependency Inversion),實體應該依賴於抽象而不是實現。也就是說高層次模塊,不應該依賴於低層次模塊,而是應該基於抽象。實踐這一原則是保證產品代碼之間適當耦合度的法寶。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章