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