迪公尺特原則

2021-09-25 07:49:48 字數 850 閱讀 8995

也就是說類盡量不要對外公開public方法,和非靜態的public變數,多使用private和protected訪問許可權。

迪公尺特原則的核心就是類的解耦和,只有耦合越低,類的復用性才能提高,但是過分使用迪公尺特原則,會大量產生中介類,導致系統變複雜,對維護增加困難。

迪公尺特原則強調只和朋友交流,不和陌生人說話。這裡的朋友指的是出現在成員變數,方法的輸入,輸出引數中的類稱為成員朋友類,而出現在方法體內部的類不屬於朋友類,但有時在業務上有些內部類也算朋友類。

假設現在有這樣乙個情況,boss需要teamleader去統計一下學校總共有幾個課程,如果採用下面這種設計方式

public class boss 

return new teamleader().countcoursenumber(courses);

}}

public class teamleader 

}

顯然這是違反迪公尺特法則的,在業務邏輯上,boss是不可能直接與course又交流的,能去統計course的只有teamleader,雖然結果是相同的,但是增加了boss這個類的耦合。

正確的方式

public class boss 

}

public class teamleader 

return courses.size();

}}

將查詢course集合的語句從boss中移動到teamleader中,就符合了業務邏輯,符合了迪公尺特法則。boss不與course這個類有交流,它只需要讓teamleader去查詢資料庫給他結果就行,即符合不和陌生人交流。

五 迪公尺特原則

定義 乙個物件應該對其他物件保持最少的了解。又叫最少知道原則 盡量降低類與類之間的耦合 強調只和朋友交流,不和陌生人說話 朋友 出現在成員變數 方法的輸入 輸出引數中的類稱為成員朋友類,而出現在方法體內部的類不屬於朋友類。優點 降低類之間的耦合 假設場景 老闆需要知道某個領導下面有多少員工,只需要知...

05 迪公尺特原則 LOD

lod,law of demeter,迪公尺特原則 or lkp,least knowledge principle,最少知識原則 乙個物件應該對其他物件有最少的了解。乙個類應該對自己需要耦合或呼叫的類知道的最少,類的內部如何實現與呼叫者或者依賴者沒有關係,呼叫者或者依賴者只需知道它需要的方法即可。...

設計模式 迪公尺特原則 開閉原則

乙個物件應該對其他物件有最少的了解。通俗地講,乙個類應該對自己需要耦合或呼叫的類知道得最少,你 被耦合或呼叫的類 的內部是如何複雜都和我沒關係,那是你的事情,我就知道你提供的這麼多public方法,我就呼叫這麼多,其他的我一概不關心。每個物件都必然會與其他物件有耦合關係,兩個物件之間的耦合就成為朋友...