美文网首页设计模式
[设计原则]迪米特法则

[设计原则]迪米特法则

作者: hukei | 来源:发表于2017-02-16 15:30 被阅读0次

    迪米特法则(LOD)也称为最少知识原则(LKP),虽然名字不同,但描述的是同一个规则:

    • 一个对象应该对其他对象有最少的了解。通俗地讲,一个类应该对自己需要耦合或调用的类知道得最少。

    迪米特法则对类的低耦合提出了明确的要求,其包含以下4层含义:

    • 只与直接的朋友通信。什么要做直接的朋友呢?每个对象者必然会与其他对象有耦合关系,两个对象之间的耦合就成为朋友关系,这种关系的类型有很多,例如:组合、聚合、依赖等。
    • 朋友间也是有距离的,一个类公开的public属性或方法越多,修改时涉及的面也就越大,变更引起的风险扩散也就越大。因此,为了保持朋友类之间的距离,在设计时需要反复衡量:是否还可以再减少public方法和属性,是否可以修改为privatepackage-private(包类型,在类、方法、变量前不加访问权限,则默认为包类型)、protected等访问权限,是否可以加上final关键词等。

    迪米特法则要求类尽量不要对外公布太多的public方法和非静态的public变量,尽量内敛,多使用privatepackage-privateprotected等访问权限

    • 是自己的就是自己的,如果一个方法放在本类中,既不增加类间的关系,也对本来不产生负面影响,那就放置在本类中。
    • 谨慎使用Serializable

    迪米特法则的核心观念就是类间的解耦,弱耦合了以后,类的复用率才可以提高。其要求的结果就是产生了大量的中转或跳转类,导致系统的复杂性提高,同时也为维护带来难度。采用迪米特法则时需要反复权衡,既做到让结构清晰,又做到高内聚低耦合。

    相关文章

      网友评论

        本文标题:[设计原则]迪米特法则

        本文链接:https://www.haomeiwen.com/subject/wqncwttx.html