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

2021-07-30 02:34:42 字數 830 閱讀 5060

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

每個物件都必然會與其他物件有耦合關係, 兩個物件之間的耦合就成為朋友關係

乙個類公開的public屬性或方法越多, 修改時涉及的面也就越大, 變更引起的風險擴散也就越大。 因此, 為了保持朋友類間的距離,在設計時需要反覆衡量: 是否還可以再減少public方法和屬性, 是否可以修改為private、 package-private( 包型別, 在類、 方法、 變數前不加訪問許可權, 則預設為包型別) 、 protected等訪問許可權, 是否可以加上final關鍵字等。

如果乙個方法放在本類中, 既不增加類間關係, 也對本類不產生負面影響, 那就放置在本類中。

在實際應用中,如果乙個類跳轉兩次以上才能訪問到另乙個類, 就需要想辦法進行重構了,為什麼是兩次以上呢? 因為乙個系統的成功不僅僅是乙個標準或是原則就能夠決定的, 有非常多的外在因素決定, 跳轉次數越多, 系統越複雜, 維護就越困難, 所以只要跳轉不超過兩次都是可以忍受的, 這需要具體問題具體分析。

乙個軟體產品只要在生命期內, 都會發生變化, 既然變化是乙個既定的事實, 我們就應該在設計時盡量適應這些變化, 以提高專案的穩定性和靈活性, 真正實現「擁抱變化」。開閉則告訴我們應盡量通過擴充套件軟體實體的行為來實現變化, 而不是通過修改已有的**來完成變化, 它是為軟體實體的未來事件而制定的對現行開發設計進行約束的乙個原則。

設計模式筆記 迪公尺特原則

迪公尺特法則還有乙個英文解釋是only talk to your immedate friends,意思就是 只與直接的朋友通訊,什麼叫做直接的朋友呢?每個物件都必然會與其他物件有耦合關係,兩個物件之間的耦合就成為朋友關係,這種關係的型別有很多,如組合,聚合,依賴等。舉例如下 案例 找中介租房 pu...

設計模式之迪公尺特原則

迪公尺特原則 law of demeter lod 是指乙個物件應該對其它物件保持最少的了解,又叫最少知道原則 least knowledge principle,lkp 盡量降低類與類之間的耦合度。迪公尺特原則主要強度,只和朋友交流,不和陌生人說話。出現在成員變數 方法的輸入 輸出引數中的類都可以...

迪公尺特原則

也就是說類盡量不要對外公開public方法,和非靜態的public變數,多使用private和protected訪問許可權。迪公尺特原則的核心就是類的解耦和,只有耦合越低,類的復用性才能提高,但是過分使用迪公尺特原則,會大量產生中介類,導致系統變複雜,對維護增加困難。迪公尺特原則強調只和朋友交流,不...