最近在重構老系統的**,感覺有些疑惑,故重新看了《敏捷開發軟體開發:原則、模式和實踐》,記錄一下。
物件導向設計要遵守下面幾個原則:
每個類承擔的職責應該單一,實現高內聚。如果這個類承擔太多,那麼它變動的可能性很大,因為有太多原因導致這個類變化。就乙個類而言,應該僅有乙個引起它變化的原因。任何在設計類的時候,都需要考慮到這個類的職責,即這個類的邊界。這提示我們,在設計系統或者模組的時候,都要考慮各自的邊界。如今在微服務流行的時代,同樣能看到該原則的身影。記著職責!邊界!
對修改是封閉的,對擴充套件是開放的。這是物件導向設計最為核心的原則。通過封裝變化,抽象出介面,就可以在不用修改原有**的基礎上,通過擴充套件介面,增加新功能。這需要我們**變為,通過介面隔離變化。
根據該原則,子類必須能夠替換掉它們的基類,也就是說使用基類的方法或函式能夠順利地引用子類物件。lsp原則與單一職責原則和介面分離原則密切相關,如果乙個模擬子類具備更多功能,很有可能某些功能會失效,這就違反了lsp原則。為了遵循該設計原則,派生類或子類必須增強功能。
高層模組不應該依賴於底層模組,二者都應該依賴於抽象。抽象不依賴於細節,細節應該依賴於抽象。這也是spring設計的核心思想。
不應該強迫客戶依賴於他們不用的方法。這個原則用來處理胖介面。給我們啟發是對介面分組,分離介面,不要汙染介面。
物件導向設計原則
oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...
物件導向設計原則
物件設計原則 物件導向設計原則 物件導向設計的基石是 開 閉 原則。開一閉 原則講的是 乙個軟體實體應當對擴充套件開放,對修改關閉。這個規則說的是,在設計乙個模組的時候,應當使這個模組可以在不被修改的前提下被擴充套件。從另外乙個角度講,就是所謂的 對可變性封裝原則 對可變性封裝原則 意味著兩點 1 ...
物件導向設計原則
oo原則 封裝變化 多用組合,少用繼承 針對介面程式設計,不針對實現程式設計 為互動物件之間的松耦合而努力 類應該對擴充套件開放,對修改關閉 依賴抽象,不要依賴具體類 只和朋友交談 別找我,我會找你 類應該只有乙個改變的理由 從設計原則到設計模式 針對介面程式設計,而不是針對實現程式設計 客戶無需知...