這種軟體設計原則你未必懂

2022-07-04 07:54:14 字數 1320 閱讀 6495

「每乙個軟體單位對其他的單位都只有最少的知識,而且侷限於那些與本單位密切相關的軟體單位」

……

迪公尺特法則(lod)最初是用來作為物件導向的系統設計風格的一種法則,是很多著名系統,如火星登陸軟體系統、木星的歐羅巴衛星軌道飛船的軟體系統的指導設計原則。

迪公尺特法則(lod)又可分為兩種:狹義的迪公尺特法則(lod)和廣義的迪公尺特法則(lod)。

狹義的迪公尺特法則(lod):

我們更為形象的來這樣說:

可見,通過呼叫**,隱藏了「陌生人」的存在,使得「某人」認為他所呼叫的方法是「朋友」的方法。

任何乙個物件,如果滿足上述條件之一,就是當前物件的「朋友」;否則就是「陌生人」。

狹義的迪公尺特法則(lod)的缺點:

遵循類之間的迪公尺特法則會使乙個系統的區域性設計簡化,因為每個區域性都不會與遠距離的物件有直接的關聯;但也會造成不同模組之間的通訊效率降低,會使系統的不同模組之間不容易協調。

在系統中造出大量的小方法,散落在系統的各個角落。這些方法僅傳遞間接的呼叫,與系統的商務邏輯無關。

當設計師試圖從一張類圖中看出總體的架構時,這些小方法會造成迷惑和困擾。

改進辦法:與依賴倒置原則互補使用

廣義的迪公尺特法則(lod):

對物件之間的資訊流量、流向以及資訊的影響進行控制。

充分體現封裝的概念。

具體應用時,需注意:

相應設計模式:

façade

mediator

設計原則間的關係:

srp是基本

ocp是目的

dip為手段

lsp是繼承復用的基礎

isp是實現lod的手段之一

carp是復用的原則 

多個原則應綜合運用,共同達到目的----設計乙個好的系統:可擴充套件性、靈活性、可插入性。

參考資源:

《設計模式:可復用物件導向軟體的基礎》,erich gamma richard helm ralph johnson john vlissides著作,李英軍 馬曉星 蔡敏 劉建中譯,機械工業出版社,2005.6

《敏捷軟體開發:原則、模式與實踐》,robert c. martin著,鄧輝譯,清華大學出版社,2003.9

《設計模式解析》,alan shalloway等著(徐言聲譯),人民郵電出版社,2006.10

軟體設計原則

開閉原則 ocp 軟體設計的最大原則 這個原則說的是 對擴充套件開放,對修改關閉。其實意思是說,給系統新增新的功能,但不修改原有 如果能做到呢,關鍵在於抽象化,也就是封裝變化,抽象層不變,讓具體實現依賴抽象隨需求變化。使得系統具有很強的擴充套件性和可維護性。黎克特制代換原則 任何基類可以出現的地方,...

軟體設計原則

高內聚 低耦合 乙個軟體系統要有乙個穩定的架構,不會隨需求的改變而發生巨大的變動。因此,高內聚 低耦合是乙個軟體系統設計中必須遵循的基本原則 面向抽象程式設計 在面向過程的軟體開發中,上層元件呼叫下層元件,就意味著上層元件依賴於下層元件,當下層元件發生劇烈變化時,上層元件也要跟著一起發生變動,這將導...

軟體設計原則

軟體開發中有以下一些基本原則,深刻掌握這些原則比掌握一門技術要重要。1.開閉原則 open closed principle,ocp 乙個軟體應當對擴充套件開放,對修改關閉。也就是說我們在設計軟體時,應當可以在不必修改源 的情況下改變 擴充套件 其行為。開閉原則是非常重要的設計原則,其它的設計原則實...