迪米特法则

来源:互联网 发布:启源互动网络销售什么 编辑:程序博客网 时间:2024/05/03 15:28
迪米特法则

迪米特法则(Law of Demeter)又叫作最少知道原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD.百度百科

小路完成了接口隔离,就主动上网开始查询一些设计原则,今天终于学到了迪米特法则。

迪米特法则就是尽量减少间接引用,可是这就是如此的抽象,该如何理解呢?那就让我想起了另外一句俗语:“不要隔着锅台上炕”(不要越级汇报)。

这样是不是就很容易理解了呢,尽量不要知道上级的上级是怎么工作的,只要知道你应该和上级说什么做什么就可以了。

那就上代码吧

//总公司员工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();            //为分公司人员按顺序分配一个ID            emp.setId("分公司"+i);            list.add(emp);        }        return list;    }    public void printEmployee(){        List<SubEmployee> list = this.getAllEmployee();        for(SubEmployee e:list){            System.out.println(e.getId());        }    }}class CompanyManager{    public List<Employee> getAllEmployee(){        List<Employee> list = new ArrayList<Employee>();        for(int i=0; i<30; i++){            Employee emp = new Employee();            //为总公司人员按顺序分配一个ID            emp.setId("总公司"+i);            list.add(emp);        }        return list;    }    public void printAllEmployee(SubCompanyManager sub){        sub.printEmployee();        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());    }} 

话不多说,小路已经开始分析代码了~

0 0
原创粉丝点击