最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

2.8迪米特法則

2022-02-08 21:19 作者:取悅疾風(fēng)  | 我要投稿

內(nèi)容來自尚硅谷Java設(shè)計模式(圖解+框架源碼剖析)_嗶哩嗶哩_bilibili

寫在前面:本文內(nèi)容大致和原視頻內(nèi)老師的筆記內(nèi)容相同,會偶爾插入自己的注釋和理解,盡量會完成作業(yè)

2.8.1基本介紹

1)????? 一個對象應(yīng)該對其他對象保持最少的了解

2)????? 類與類關(guān)系越密切,耦合度越大

3)????? 迪米特法則(Demeter Principle)又叫最少知道原則,即一個類對自己依賴的類知道的越少越好。也就是說,對于被依賴的類不管多么復(fù)雜,都盡量將邏輯封裝在類的內(nèi)部。對外除了提供的public 方法,不對外泄露任何信息

4)????? 迪米特法則還有個更簡單的定義:只與直接的朋友通信

5)????? 直接的朋友:每個對象都會與其他對象有耦合關(guān)系,只要兩個對象之間有耦合關(guān)系,我們就說這兩個對象之間是朋友關(guān)系。耦合的方式很多,依賴,關(guān)聯(lián),組合,聚合等。其中,我們稱出現(xiàn)成員變量,方法參數(shù),方法返回值中的類為直接的朋友,而出現(xiàn)在局部變量中的類不是直接的朋友。也就是說,陌生的類最好不要以局部變量的形式出現(xiàn)在類的內(nèi)部。

解釋直接朋友:現(xiàn)在有A類和B類,A類需要用到B類,那么就會成為朋友,A里有一個B b;這個屬性,可稱為直接朋友,或者A類里有一個方法m(B b){} 需要傳入一個B類的對象,可以稱為直接朋友,或者A類里有一個方法m2(){} 返回一個B類的對象,也可以稱為直接朋友,如果A類里有一個特方法m3(){},這個方法里面new了一個B b;那這種情況,B類就不是A類的直接朋友

2.8.2應(yīng)用案例

1)????? 有一個學(xué)校,下屬有各個學(xué)院和總部,現(xiàn)要求打印出學(xué)??偛繂T工ID和學(xué)院員工的id

2)????? 編程實現(xiàn)上面的功能,看代碼演示

2.8.3應(yīng)用實例改進

1)????? 前面設(shè)計的問題在于School Manager中,College Employee類并不是School Manager類的直接朋友(分析)

2)????? 按照迪米特法則,應(yīng)該避免類中出現(xiàn)這樣非直接朋友關(guān)系的耦合

3)????? 對代碼按照迪米特法則進行改進.(看老師演示)

代碼演示

2.8.4迪米特法則注意事項和細(xì)節(jié)

1)????? 迪米特法則的核心是降低類之間的耦合

2)????? 但是注意:由于每個類都減少了不必要的依賴,因此迪米特法則只是要求降低類間(對象間)耦合關(guān)系,并不是要求完全沒有依賴關(guān)系


2.8迪米特法則的評論 (共 條)

分享到微博請遵守國家法律
衡阳县| 小金县| 东台市| 聂拉木县| 枣庄市| 泾源县| 安国市| 华容县| 三门峡市| 烟台市| 和政县| 思茅市| 都江堰市| 西宁市| 个旧市| 宜州市| 长泰县| 老河口市| 裕民县| 宣威市| 孝感市| 岢岚县| 永德县| 哈尔滨市| 睢宁县| 嵊泗县| 铜陵市| 盱眙县| 枣阳市| 特克斯县| 南雄市| 达尔| 钟祥市| 宣威市| 崇信县| 九江市| 灵石县| 星子县| 武平县| 定兴县| 孟村|