架構設計六大原則:
單一職責、開放封閉、黎克特制替換、最少知識、介面隔離、依賴倒置
將以上六大原則的英文首字母拼在一起就是solid(穩定的),所以也稱為solid原則。
一、單一職責原則
永遠不應該有多於乙個原因來改變某個類。
理解:對於乙個類而言,應該僅有乙個引起它變化的原因。
二、開放封閉原則
軟體實體擴充套件應該是開發的,但對於修改應該是封閉的。
理解:對擴充套件開放,對修改封閉。可以去擴充套件類,但不要去修改類。
三、黎克特制替換原則
理解:父類一定能夠被子類替換。
四、最少知識原則
只與你最直接的物件交流。
理解:高內聚,低耦合。做系統設計時,儘量減少依賴關係。
五、介面隔離原則
乙個類與另乙個類之間的依賴性,應該依賴於盡可能小的介面。
理解:不要對外暴露沒有實際意義的介面。使用者不應該依賴它不需要的介面。
六、依賴倒置原則
高層模組不應該依賴於低層模組,它們應該依賴於抽象。抽象不應該依賴於細節,細節應該依賴於抽象。
理解:應該面向介面程式設計,不應該面向實現類程式設計。
其他原則:
組合/聚合復用原則:當要擴充套件類的功能時,優先考慮使用組合,而不是繼承。
無環依賴原則:a依賴b,b依賴c,c依賴a,此時出現迴圈依賴,設計中避免該問題,可以通過引入「中介者模式」解決。
共同封裝原則:應該將易變的類放在同乙個包裡,將變化隔離出來。該原則時「開放封閉原則」的衍生。
共用重用原則:如果重用了包中的乙個類,那麼也就相當於重用了包中的所有類,我們要盡可能減小包的大小。
好萊塢原則:控制反轉、依賴注入。不需要主動建立物件,而是由容器幫我們來建立並管理這些物件。
保持它的簡單與傻瓜:保持系統介面簡潔,功能實用,操作方便。
關注點分離:將乙個複雜的問題分離為多個簡單的問題,然後逐個解決。
你不需要它:不要一開始就把系統設計得非常複雜,不要陷入過度設計的深淵,讓系統足夠簡單,而又不失擴充套件性。
軟體設計原則
開閉原則 ocp 軟體設計的最大原則 這個原則說的是 對擴充套件開放,對修改關閉。其實意思是說,給系統新增新的功能,但不修改原有 如果能做到呢,關鍵在於抽象化,也就是封裝變化,抽象層不變,讓具體實現依賴抽象隨需求變化。使得系統具有很強的擴充套件性和可維護性。黎克特制代換原則 任何基類可以出現的地方,...
軟體設計原則
高內聚 低耦合 乙個軟體系統要有乙個穩定的架構,不會隨需求的改變而發生巨大的變動。因此,高內聚 低耦合是乙個軟體系統設計中必須遵循的基本原則 面向抽象程式設計 在面向過程的軟體開發中,上層元件呼叫下層元件,就意味著上層元件依賴於下層元件,當下層元件發生劇烈變化時,上層元件也要跟著一起發生變動,這將導...
軟體設計原則
軟體開發中有以下一些基本原則,深刻掌握這些原則比掌握一門技術要重要。1.開閉原則 open closed principle,ocp 乙個軟體應當對擴充套件開放,對修改關閉。也就是說我們在設計軟體時,應當可以在不必修改源 的情況下改變 擴充套件 其行為。開閉原則是非常重要的設計原則,其它的設計原則實...