设计模式--迪米特法则(Lod/LKP)

原创 2015年07月06日 17:29:49
迪米特法则:(Law of Demeter, LoD),也称最少知识原则(Least Knowledge Principle, LKP)
理解:
     如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个放发的话,可以通过第三者转发这个调用。

  •   只和朋友交流(更准确来讲是:直接的朋友)
每个对象都必然会与其他对象有耦合关系,两个对象之间的耦合就成为朋友关系,这种关系的类型有很多,如组合、聚合、依赖等。
朋友类的定义:出现在成员变量、方法的输入输出参数中的类。   而方法体类内部的类不能算。
  •   朋友之间也有间距
如果朋友把太多的方法或属性暴露给你,则过于亲密,耦合关系变得异常牢固,而且,修改时涉及的面也就越大,变更引起的风险就越大。因此,要适时反复衡量:是否可以减少public方法和属性,改为private、package-private、protected等访问权限,及是否可以加上final关键字。

看个示例:
     下面的代码违反了设计原则:
public class Teacher {
 
    public void commond(GroupLeader groupLeader) {
        List<Girl> listGirls = new ArrayList<Girl>();
        for (int i = 0; i < 20; i++) {
            listGirls.add(new Girl());
        }
        groupLeader.countGirls(listGirls);
    }
}

     一个类应该纸盒自己有直接关系的类交流。
正确的方法如下:
public class Teacher {
 
    public void commond(GroupLeader groupLeader) {
        groupLeader.countGirls();
    }
 
}

public class GroupLeader {
 
    private List<Girl> listGirls;
 
    public GroupLeader(List<Girl> _listGirls) {
        this.listGirls = _listGirls;
    }
 
    public void countGirls() {
        System.out.println("女生数量是:" + listGirls.size());
    }
 
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

我所理解的SOLID原则

S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编码原则。
  • e5Max
  • e5Max
  • 2013年05月01日 17:48
  • 9772

Java设计模式——迪米特法则

迪米特法则又叫作最少知识原则,就是说,一个对象应当对其他对象要有尽可能少的了解。 一、狭义的迪米特法则 如果两个类不必彼此直接通信,那么这两个类就不应该发生直接的相互作用。如果其中的一个类需要调用另一...

设计模式六大原则(五)-- 最少知识原则 ( LKP ) / 迪米特法则 ( LOD )

From Now On,Let us begin Design Patterns。最少知识原则 Least Knowledge Principle / 迪米特法则 Law Of Demeter ...

设计模式之六大原则——迪米特法则(LoD,LKP)

定义: 迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least Knowledge Principle,LKP)。 一个对象应该对其他对象有最少的了解。通俗地讲,一个类应...

设计模式六大原则例子(五)-- 最少知识原则(LKP)/ 迪米特法则(LOD)例子

之前我们对设计模式的六大原则做了简单归纳,这篇博客是对最少知识原则进行的举例说明。 最少知识原则的意义朋友类的定义:出现在成员变量、方法的输入输出参数中的类。而方法体类内部的类不能算。 每个对象都必然...

设计模式之六大原则——迪米特法则(LoD,LKP)

定义: 迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least Knowledge Principle,LKP)。 一个对象应该对其他对象有最少的了解。通俗地讲,...

设计模式之六大原则——迪米特法则(LoD,LKP)

定义: 迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least Knowledge Principle,LKP)。 一个对象应该对其他对象有最少的了解。通俗地讲,一个类应...

设计模式六大原则——迪米特法则(LoD,Law of Demeter)

转自 http://baike.baidu.com/item/%E8%BF%AA%E7%B1%B3%E7%89%B9%E6%B3%95%E5%88%99 转自 http://blog.csdn.ne...

设计模式之迪米特法则LoD(最少知识原则)

迪米特法则(LoD),如果两个类不必彼此直接通信,

设计模式六大原则——迪米特法则(LoD)

1、背景      在图书馆借书,刚开始的时候,直接跑到相应的楼层去,到里面去转,去找要借的书,在里面溜达半天才能找到;后来知道图书馆有一个电脑查询处,然后直接在电脑上输入想要借的书,电脑就会显示你想...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:设计模式--迪米特法则(Lod/LKP)
举报原因:
原因补充:

(最多只允许输入30个字)