迪米特原則 6,Least Knowledge Principle(LKP)最少知識原則,又稱為“Law of Demeter”
迪米特法則的各種表述
① 只與你直接的朋友們通信;
② 不要跟“陌生人”說話;
③ 每一個軟件單位對其他的單位都只有最少的知識,而且局限于那些與本單位密切相關的軟件單位。
????
和ISP接口隔離原則一樣,限制類與類之間的通信。ISP限制的是寬度,而LoD迪米特原則限制的是通信的
廣度和深度。
?? LoD在 廣度上面,盡量減少遠距離類的關聯(lián),而使用與自己有關的類,并且也與遠距離類有關的類。
? *可是這種做法有一點麻煩。多個遠距離類產(chǎn)生關聯(lián)的時候,不怎么容易處理,所以增加一個遠距離類的抽象類。所有的遠距離類都是通過抽象類的形式來訪問。
?在深度上面,控制權限是最重要的,對于類,一個是default 和public,盡量最小權限;對于成員,
private,default,protected,public。往上面走,權限越小,依賴的耦合就越小。
迪米特法則與設計模式
對迪米特法則的最好描述,可以參考門面模式和調(diào)停者模式。
廣義迪米特法則
☆ 在將迪米特法則運用到系統(tǒng)的設計中時,應注意的幾點:
① 在類的劃分上,應該創(chuàng)建有弱耦合的類;
② 在類的結構設計上,每一個類都應當盡量降低成員的訪問權限;
③ 在類的設計上,只要有可能,一個類應當設計成不變類;
④ 在對其他類的引用上,一個對象對其它對象的引用應當降到最低;
⑤ 盡量降低類的訪問權限;
⑥ 謹慎使用序列化功能;
⑦ 不要暴露類成員,而應該提供相應的訪問器(屬性)。?
http://blog.csdn.net/plusir/archive/2006/08/21/1104095.aspx
?