設計模式之 迪公尺特法則

2021-10-01 06:33:03 字數 2028 閱讀 2200

核心思想:降低類之間的耦合

來看乙個類之間耦合度很高的例項

public

class

demeter

}//學校員工

@data

class

scholleemployee

public

intgetid()

}//學校員工

@data

class

collegeemployee

public

intgetid()

}//管理學院員工

class

collegemanager

return collegeemployeelist;}}

//學校員工

class

schollemanager

return scholleemployeelist;

}//輸出全部員工

void

printallemployee

(collegemanager collegemanager)

list

scholleemployeelist =

this

.getscholleemployee()

; system.out.

println

("--------學校員工-------");

for(scholleemployee scholleemployee : scholleemployeelist

)}}執行結果:

----

----學院員工--

----

-學院員工=

0學院員工=

1學院員工=

2學院員工=

3學院員工=

4學院員工=

5學院員工=

6學院員工=

7學院員工=

8學院員工=9--

----

--學校員工--

----

-學校員工=

0學校員工=

1學校員工=

2學校員工=

3學校員工=

4學校員工=

5學校員工=

6學校員工=

7學校員工=

8學校員工=

9

分析:輸出員工時,院管理類的引用作為引數,呼叫了後去院員工的方法。同時進行了遍歷輸出。對於學校管理類來說,院管理類就是乙個陌生類。他的引用增加了類之間的耦合。

解決思路:院的員工輸出方法放在院管理類中。

public

class

demeterimp

}//學校員工

@data

class

scholleemployeeimp

public

intgetid()

}//學校員工

@data

class

collegeemployeeimp

public

intgetid()

}//管理學院員工

class

collegemanagerimp

return collegeemployeelist;

}void

printcollegemanager()

}}//學校員工

class

schollemanagerimp

return scholleemployeelist;

}//輸出全部員工

void

printallemployee

(collegemanagerimp collegemanager)

}}

總結:乙個物件應該對其他物件保持最少的了解。

類與類關係越密切,耦合度越大。

只和直接朋友通訊。直接朋友指出現成員變數,方法引數,方法返回值中的類。

出現在區域性變數中的類不是直接的朋友。

設計模式 迪公尺特法則

一,概述 迪公尺特法則 law of demeter 又叫作最少知識原則 least knowledge principle 簡寫lkp 就是說乙個物件應當對其他物件有盡可能少的了解,不和陌生人說話。英文簡寫為 lod 如果兩個類不必彼此直接通訊,那麼這兩個類就不應當發生直接相互作用。如果其中乙個類...

設計模式 迪公尺特法則

設計模式 迪公尺特法則 only talk to your immediate friends 只與直接的朋友通訊。即每個物件都有耦合關係,物件之間有耦合。定義老師類 public class teacher 然後進行查詢任務 groupleader.countgirls listgirls 然後定...

java 設計模式之迪公尺特法則

迪公尺特法則 law of demeter,lod 也稱為最少知識原則 least knowledge principle,lkp 問題由來 類與類之間的關係越密切,耦合度越大,當乙個類發生改變時,對另乙個類的影響也越大 乙個物件應該對其他物件有最少的了解。通俗地講,乙個類應該對自己需要耦合或呼叫的...