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

[设计原则]迪米特法则

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

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

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

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

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

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

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

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

相关文章

  • [Code Design] 六大设计原则之`迪米特法则`

    六大设计原则之迪米特法则 定义 迪米特法则(Law of Demeter)又叫作最少知识原则(Least Know...

  • 迪米特法则

    个人博客原文:迪米特法则 设计模式六大原则之五:迪米特法则。 简介 姓名:迪米特法则 英文名:Law of Dem...

  • 迪米特法则

    迪米特法则 迪米特法则定义 迪米特法则(Law Of Demeter, LoD) 也成为最少知识原则(Least ...

  • 迪米特法则

    迪米特法则 迪米特法则的定义 迪米特法则(Law of Demeter,LoD)也称为最少知识原则(Least K...

  • 设计模式学习之迪米特法则

    迪米特法则(LOD) 迪米特法则(Law of Demeter)又叫作最少知识原则(The Least Knowl...

  • Swift设计模式----目录

    面向对象设计原则: 开闭原则 单一职责原则 依赖倒置原则 接口分离原则 迪米特法则 里氏替换原则 面向对象设计模式...

  • 第11章 无熟人难办事?--迪米特法则

    迪米特法则 迪米特法则(LoD)也叫最少知识原则。[J&DP] 迪米特法则(LoD),如果两个类不必彼此直接通信,...

  • 读《设计模式之禅》(二)

    上次看了设计模式的6大设计原则,单一职责原则、开闭原则、迪米特法则、里氏替换原则、接口隔离原则、依赖倒置原则。这次...

  • 02 Android常见设计模式:面向对象的设计原则

    一. 类的设计原则 开闭原则里氏替换原则迪米特法则(最少知道原则)单一职责原则接口隔离原则依赖倒置原则 这几个设计...

  • 面向对象设计原则 之 迪米特法则

    7 种设计原则: 开闭原则 里氏替换原则 依赖倒置原则 单一职责原则 接口隔离原则 迪米特法则 合成复用原则 7 ...

网友评论

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

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