設計模式之迪公尺特原則(LOD) 最少知識原則

2022-01-16 08:09:47 字數 1222 閱讀 4392

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

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

概念:lod:lod,law of demeter

迪公尺特法則又稱最少知識原則,也就是說乙個物件應當對其他物件有盡可能少的了解。

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

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

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

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

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

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

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

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

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

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

(1) 在類的劃分上,應該建立有弱耦合的類;

(2)在類的結構設計上,每乙個類都應當盡量降低成員的訪問許可權;

(3)在類的設計上,只要有可能,乙個類應當設計成不變類;

(4)在對其他類的引用上,乙個物件對其它物件的引用應當降到最低;

(5)盡量降低類的訪問許可權;

(6)謹慎使用序列化功能;

(7)不要暴露類成員,而應該提供相應的訪問器(屬性)。

相應設計模式:

façade

mediator

設計原則間的關係:srp是基本

ocp是目的

dip為手段

lsp是繼承復用的基礎

isp是實現lod的手段之一

carp是復用的原則 

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

迪公尺特法則(LoD)最少知識原則

1.拉公尺特法則,如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接的相互作用 盡可能的封閉私有 如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者 這個呼叫 如通過呼叫介面定義 2.在類的介面設計上,每乙個類都應當盡量降低成員的訪問許可權,封裝好私有成員,不需要被其他類知道的屬性...

迪公尺特法則(LoD) 最少知識原則

一 基本概念 迪公尺特法則 如果兩個類不直接通訊,那麼這兩個類就不應當發生直接的相互作用。如果乙個類需要呼叫另乙個類的某個方法的話,可以通過第三個類 這個呼叫。二 核心思想 在類的結構設計上,每乙個類都應該盡量降低成員的訪問許可權。也就是說 乙個類包裝好自己的private狀態,不需要讓別的類知道的...

設計原則之迪公尺特法則(LoD)

迪公尺特法則又叫最少知識原則 lkp 意思是乙個物件應當對其他物件盡可能少的了解。幾種表述方式 只與你直接的朋友們通訊 不要跟 陌生人 說話 每乙個軟體單位對其他的單位都只有最少的了解,這些了解僅侷限於那些與本單位密切相關的軟體單位 例項 public class someone 朋友 中間類 pu...