面向對象設計原則

最近在重構老系統的代碼,感覺有些疑惑,故重新看了《敏捷開發軟件開發:原則、模式和實踐》,記錄一下。
面向對象設計要遵守下面幾個原則:

類單一職責原則(SPR)

每個類承擔的職責應該單一,實現高內聚。如果這個類承擔太多,那麼它變動的可能性很大,因爲有太多原因導致這個類變化。就一個類而言,應該僅有一個引起它變化的原因。任何在設計類的時候,都需要考慮到這個類的職責,即這個類的邊界。這提示我們,在設計系統或者模塊的時候,都要考慮各自的邊界。如今在微服務流行的時代,同樣能看到該原則的身影。記着職責!邊界!

開放-封閉原則(OCP)

對修改是封閉的,對擴展是開放的。這是面向對象設計最爲核心的原則。通過封裝變化,抽象出接口,就可以在不用修改原有代碼的基礎上,通過擴展接口,增加新功能。這需要我們預測變爲,通過接口隔離變化。

Liskov替換原則(LSP)

根據該原則,子類必須能夠替換掉它們的基類,也就是說使用基類的方法或函數能夠順利地引用子類對象。LSP原則與單一職責原則和接口分離原則密切相關,如果一個類比子類具備更多功能,很有可能某些功能會失效,這就違反了LSP原則。爲了遵循該設計原則,派生類或子類必須增強功能。

依賴倒置原則(DIP)

高層模塊不應該依賴於底層模塊,二者都應該依賴於抽象。抽象不依賴於細節,細節應該依賴於抽象。這也是Spring設計的核心思想。

接口隔離原則(ISP)

不應該強迫客戶依賴於他們不用的方法。這個原則用來處理胖接口。給我們啓發是對接口分組,分離接口,不要污染接口。

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