Java設(shè)計模式:(1)設(shè)計模式七大設(shè)計原則-迪米特法則

基本介紹

1)一個對象應該對其他對象保持最少的了解

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

3)迪米特法則又叫最少直到原則义桂,即一個類對自己依賴的類知道的越少越好颊艳,也就是說肾筐,對于被依賴的類不管多么復雜,都盡量將邏輯封裝在類的內(nèi)部娇斑。對外出了提供的public方法策添,不對外泄漏任何消息

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

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

public class Demeter {
    public static void main(String[] args) {
        System.out.println("");
        SchoolManager schoolManager = new SchoolManager();
        schoolManager.printAllEmployee(new CollegeManager());
    }
}

class Employee{
    private String id;
    public void setId(String id){
        this.id = id;
    }

    public String getId(){
        return id;
    }
}

class CollegeEmployee{
    private String id;
    public void setId(String id){
        this.id = id;
    }
    public String getId(){
        return id;
    }
}

class CollegeManager{
    public List<CollegeEmployee> getAllEmployee(){
        List<CollegeEmployee> list = new ArrayList<>();
        for(int i = 0; i < 10; i++){
            CollegeEmployee emp = new CollegeEmployee();
            emp.setId("CollegeEmployee" + i);
            list.add(emp);
        }
    return list;
    }

    public void printEmployee(){
        List<CollegeEmployee> list = getAllEmployee();
        for(CollegeEmployee e: list){
            System.out.println(e.getId());
        }
    }
}

class SchoolManager{
    public List<Employee> getAllEmployee(){
        List<Employee> list = new ArrayList<>();
        for(int i = 0;i < 5;i++){
            Employee emp = new Employee();
            emp.setId("Employee" + i);
            list.add(emp);
        }
        return list;
    }

    void printAllEmployee(CollegeManager sub){
        sub.printEmployee();
        List<Employee> list2 = this.getAllEmployee();
        for(Employee e:list2){
            System.out.println(e.getId());
        }
    }
}

// 運行結(jié)果
CollegeEmployee0
CollegeEmployee1
CollegeEmployee2
CollegeEmployee3
CollegeEmployee4
CollegeEmployee5
CollegeEmployee6
CollegeEmployee7
CollegeEmployee8
CollegeEmployee9
Employee0
Employee1
Employee2
Employee3
Employee4

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

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

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谢鹊,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蒲牧,更是在濱河造成了極大的恐慌,老刑警劉巖赌莺,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件冰抢,死亡現(xiàn)場離奇詭異,居然都是意外死亡艘狭,警方通過查閱死者的電腦和手機挎扰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門翠订,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人遵倦,你說我怎么就攤上這事尽超。” “怎么了梧躺?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵似谁,是天一觀的道長。 經(jīng)常有香客問我掠哥,道長巩踏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任续搀,我火速辦了婚禮塞琼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘禁舷。我一直安慰自己彪杉,他們只是感情好,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布牵咙。 她就那樣靜靜地躺著派近,像睡著了一般。 火紅的嫁衣襯著肌膚如雪霜大。 梳的紋絲不亂的頭發(fā)上构哺,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機與錄音战坤,去河邊找鬼曙强。 笑死,一個胖子當著我的面吹牛途茫,可吹牛的內(nèi)容都是我干的碟嘴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼囊卜,長吁一口氣:“原來是場噩夢啊……” “哼娜扇!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起栅组,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤雀瓢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后玉掸,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體刃麸,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年司浪,在試婚紗的時候發(fā)現(xiàn)自己被綠了泊业。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片把沼。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖吁伺,靈堂內(nèi)的尸體忽然破棺而出饮睬,到底是詐尸還是另有隱情,我是刑警寧澤篮奄,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布捆愁,位于F島的核電站,受9級特大地震影響宦搬,放射性物質(zhì)發(fā)生泄漏牙瓢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一间校、第九天 我趴在偏房一處隱蔽的房頂上張望矾克。 院中可真熱鬧,春花似錦憔足、人聲如沸胁附。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽控妻。三九已至,卻和暖如春揭绑,著一層夾襖步出監(jiān)牢的瞬間弓候,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工他匪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留菇存,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓邦蜜,卻偏偏與公主長得像依鸥,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子悼沈,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

推薦閱讀更多精彩內(nèi)容