第十一章 無熟人難辦事 迪公尺特法則

2021-07-11 10:44:58 字數 678 閱讀 4874

僅僅是個人學習筆記,不具備參考價值

迪公尺特法則(也叫最少知道原則):如果兩個類不必直接通訊,那麼這兩個類就不應當發生直接的互相作用。如果其中乙個類需要呼叫另乙個類中的方法,可以通過第三者**這個呼叫。簡單的說就是乙個類應該保持對其它類最少的了解。

怎麼理解迪公尺特法則呢,就像書中舉的例子,小菜需要安裝電腦,找到人事部的小楊,小楊介紹小張給小菜認識,讓小張幫著裝電腦,這個時候小菜已經認識了小楊和小張兩個人。小張臨時有事被叫走了,小菜有找到小楊,小楊有介紹小李給小菜認識,讓小李幫小菜裝電腦。這個時候小菜為了裝電腦這件事已經認識了小楊、小張、小李,用oo的思想來說就是小菜類已經和小楊、小張、小李類耦合了,有關係了,受到影響的因素就多了。

其實我們仔細分析這個問題,是因為公司的管理制度造成的,我們可以說是程式設計不好導致的。如果制度是這樣的,小菜裝電腦這件事只需找到小楊,小楊打**給it部門,告訴it部門有新同事要裝電腦,你們指派乙個人來負責整個事情。也就是說小菜是乙個類,小楊是乙個類,it部門就是乙個介面或抽象類,小李和小張都繼承或實現整個抽象。小菜只需要找到小楊即可,不需要再跟it部門的什麼小張、小李有關係。

迪公尺特法則首先強調的是每個類應當盡量降低成員的訪問許可權,將負責的業務邏輯封裝好,需要向外提供呼叫的設定成public,不需要的設定成private。

迪公尺特法則的根本思想是強調類之間的松耦合,減少了類之間的不必要依賴。

modern c design 第十一章

本章介紹了經常遇到的雙分派的一種泛型解決方案。c 在語法上實現了單分派,即虛函式,通過動態機制選擇相應的函式。雙分派是形如fun object1 a,object2 b 根據a和b的實際型別動態自動分派乙個處理函式。最容易想到的方案,蠻幹法 寫一大堆過載函式.不過這種方法會有很強的依賴性。也提供了一...

第十一章3

第十一章 一 滾動元件 awt中的滾動元件包括scrollbar 滾動條 和滾動面板 scrollpane 兩種。1 滾動條scrollbar 在指定的取值範圍內快速選取某一值的功能。i.構造方法 public scrollbar int orientation,int value,int visi...

java第十一章

問題 1 錯誤 2 異常,1 編譯時異常 檢查異常 2 執行時異常 不檢查異常 是否能用 解決,是的就是異常,不是的就是錯誤 問題 1 先驗 2 捕獲 異常捕獲機智 異常的三個種類 1 檢查異常 2 執行時異常 3 錯誤 throw 提示方法呼叫者本方法可能發生異常 throw跟異常物件 throw...