六大设计原则之迪米特法则
生活随笔
收集整理的這篇文章主要介紹了
六大设计原则之迪米特法则
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
定義:一個(gè)類和另一個(gè)類應(yīng)該保持最小的了解
問題由來:類與類之間的關(guān)系越密切,耦合度越大,當(dāng)一個(gè)類發(fā)生變化時(shí),對(duì)另一個(gè)類影響也越大。
解決方案:盡量降低類與類之間的耦合。
//總公司員工 class Employee{private String id; public void setId(String id){ this.id = id; } public String getId(){ return id; } }//分公司員工 class SubEmployee{ private String id; public void setId(String id){ this.id = id; } public String getId(){ return id; } } class SubCompanyManager{ public List<SubEmployee> getAllEmployee(){ List<SubEmployee> list = new ArrayList<SubEmployee>(); for(int i=0; i<100; i++){ SubEmployee emp = new SubEmployee(); //為分公司人員按順序分配一個(gè)ID emp.setId("分公司"+i); list.add(emp); } return list; } class CompanyManager{ public List<Employee> getAllEmployee(){ List<Employee> list = new ArrayList<Employee>(); for(int i=0; i<30; i++){ Employee emp = new Employee(); //為總公司人員按順序分配一個(gè)ID emp.setId("總公司"+i); list.add(emp); } return list; } public void printAllEmployee(SubCompanyManager sub){ List<SubEmployee> list1 = sub.getAllEmployee(); for(SubEmployee e:list1){ System.out.println(e.getId()); } List<Employee> list2 = this.getAllEmployee(); for(Employee e:list2){ System.out.println(e.getId()); } } } } public class Client{ public static void main(String[] args){ CompanyManager e = new CompanyManager(); e.printAllEmployee(new SubCompanyManager()); } }?迪米特法則的初衷是降低類的耦合,由于每個(gè)類都減少了不必要的依賴,因此確實(shí)可以降低耦合關(guān)系。但凡事有個(gè)度,雖然可以避免與非直接的類通信,但是要通信,就必然會(huì)通過一個(gè)“中介”來發(fā)生關(guān)系,過分的使用迪米特原則,會(huì)產(chǎn)生大量的中介和傳遞類,導(dǎo)致系統(tǒng)復(fù)雜度變大,所以采用迪米特法則時(shí)要反復(fù)權(quán)衡,既要做到結(jié)構(gòu)清晰,又要高內(nèi)聚低耦合。
轉(zhuǎn)載http://blog.csdn.net/zhengzhb/article/details/7296930
?
轉(zhuǎn)載于:https://www.cnblogs.com/gudulijia/p/6477989.html
總結(jié)
以上是生活随笔為你收集整理的六大设计原则之迪米特法则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在 Unity 中基于 Oculus D
- 下一篇: “GIS讲堂”第二课内容的公布