「每乙個軟體單位對其他的單位都只有最少的知識,而且侷限於那些與本單位密切相關的軟體單位」
……
迪公尺特法則(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 乙個軟體應當對擴充套件開放,對修改關閉。也就是說我們在設計軟體時,應當可以在不必修改源 的情況下改變 擴充套件 其行為。開閉原則是非常重要的設計原則,其它的設計原則實...