設計模式六大原則 迪公尺特法則

2021-06-20 12:11:20 字數 1139 閱讀 8020

背景

在學校學習時,可能因為某些事你得去其他二級學院的老師幫忙,大部分老師都是忙的(也許是的)很可能一件小事你要跑很多次。但是如果

你這件事直接找的是其他學院的院長,並且院長同意幫忙的話這件事解決起來就容易多了。不知怎地最近老是瞎想感覺這件事又能和設計模式中的迪公尺特法則(law of demeter,lod),也叫最少知識原則(least knowledge principle,lkp)扯上關係,接下來就由小生帶大家粗略的了解一下這個法則吧。

定義

如果兩個類不必批次直接通訊,那麼這兩個類就不應當發生直接的相互作用。如果其中乙個類需要呼叫另乙個類的某乙個方法的話,可以通過第三者**這個呼叫。

詳細說明

迪公尺特法則首相強調的前提是在列的結構設計上,每乙個類都應當盡量降低成員的訪問許可權,也就是說乙個列包裝好自己的private狀態,不需要讓別人的類知道的字段或行為就不要公開。

迪公尺特法則其根本思想是強調類之間的松耦合。我們在程式設計時,類之間的耦合越弱,也有利於復用,乙個處在弱耦合的類被修改,不會對有關係的類造成波及。也就是說隱藏資訊促進了**的復用。

如果兩個類不必彼此直接通訊,那麼就不要讓這兩個類發生直接的相互作用。具體做法就是引入乙個外觀物件,它為子系統提供了乙個單一而簡單的屏障從而使子系統間的通訊和相互依賴關係達到最小。

示例(設計模式中的外觀(門面)模式)

//客戶端**

class program

}//類似的**可以建立多個系統子方法

class subsystemone

} class facade

public void methoda()

public void methodb()

}

優劣優點

總結成一句話就是降低了類之間的耦合,減少了類之間不必要的依賴。 缺點

系統裡造出大量的小方法,這些方法僅僅是傳遞間的呼叫,與系統的商務邏輯無關。遵循類之間的迪公尺特法則是乙個系統的區域性設計的簡化,因為每乙個區域性都不會和遠距離的物件有直接的關聯。但是,這也造成系統的不同模組之間的通訊效率降低,也會使系統的不同模組之間不容易協調。

設計模式六大原則 迪公尺特法則

設計模式總覽 迪公尺特法則 law of demeter 又叫作最少知識原則 least knowledge principle 簡寫lkp 就是說乙個物件應當對其他物件有盡可能少的了解,不和陌生人說話。這樣就能有效降低耦合了。特點 1 只和 朋友 聯絡 2 就算是 朋友 也要少建立聯絡 用途 降耦...

設計模式六大原則 迪公尺特法則

目錄 設計模式六大原則 單一職責原則 設計模式六大原則 介面隔離原則 設計模式六大原則 依賴倒置原則 設計模式六大原則 黎克特制替換原則 設計模式六大原則 迪公尺特法則 設計模式六大原則 開閉原則 迪公尺特法則 lod 也叫最少知識原則。迪公尺特法則的定義是只與你的直接朋友交談,不與 陌生人 說話。...

設計模式六大原則(5) 迪公尺特法則

定義 乙個物件應該對其他物件保持最少的了解。問題由來 類與類之間的關係越密切,耦合度越大,當乙個類發生改變時,對另乙個類的影響也越大。解決方案 盡量降低類與類之間的耦合。自從我們接觸程式設計開始,就知道了軟體程式設計的總的原則 低耦合,高內聚。無論是面向過程程式設計還是物件導向程式設計,只有使各個模...