153
外匯
設計模式六大原則——迪米特法則(LoD)
1、背景
在圖書館借書,剛開始的時候,直接跑到相應的樓層去,到裏麵去轉,去找要借的書,在裏麵熘達半天才能找到;後來知道圖書館有一個電腦查詢處,然後直接在電腦上輸入想要借的書,電腦就會顯示你想要借的書的信息,還有所在的相關樓層存放的相關位置。
2、定義
迪米特法則(Law of Demeter)又叫作最少知識原則(LKP,Least Knowledge Principle),就是說一個對象應當對其他對象有盡可能少的了解,類與類之間的了解的越多,關係越密切,耦合度越大,當一個類發生改變時,另一個類也可能發生變化。
核心思想:最少依賴
具體體現:
- 類內部應該高內聚,設置相應的權限,有選擇的暴露方法,這就是封裝的奧秘。
- 類的依賴關係盡量減少,保持簡單和獨立,降低耦合。
有些東西,可以適當的知道,知道的太多對你不好。關係越複雜,人越不敢接近你。要達到很高的內修養,才能有很好的表現。
3、設計模式中的具體應用
1)、門麵(外觀)模式
如果一個子係統內部的對象構成自己的朋友圈,而子係統外部 對象都屬於陌生人的話,那麼子係統外部的對象與內部的對象就不應當直接通信,而應當通過一個雙方都認可的朋友,也就是門麵對象進行通信,這就導致了門麵模式。
2)、中介者模式
這裏一些對象形成一個中等規模的朋友圈,而圈內很多的對象都有排列組合般的交互作用。這時,可以通過創造一個大家共有的朋友對象,然後大家都通過這個朋友對象發生相互作用,而將相互之間的直接相互作用省略掉,這就導致了中介者模式。
3、規則建議
在類的劃分上,應當創建弱耦合的類,類與類之間的耦合越弱,就越有利於實現可複用的目標。
在類的結構設計上,每個類都應該降低成員的訪問權限。
在類的設計上,隻要有可能,一個類應當設計成不變的類。
在對其他類的應用上,一個對象對其他類的對象的應用應該降到最低。盡量限製局部變量的有效範圍。
最後更新:2017-04-03 08:26:18