6.迪米特法则

文章目录

  • 一、定义
  • 二、迪米特法则分析
    • 1.概述
    • 2.朋友的分类
    • 3.狭义和广义法则
      • 3.1 狭义法则
      • 3.2 广义法则
      • 3.3 主要用途
  • 三、实例

一、定义

??迪米特法则(Law of Demeter, LoD)又称为最少知识原则(LeastKnowledge Principle, LKP),它有多种定义方法,其中几种典
型定义如下:

??(1)不要和“陌生人”说话。英文定义为: Don’t talk tostrangers.

??(2)只与你的直接朋友通信。英文定义为: Talk only to yourimmediate friends.

??(3)每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位

英文定义为: Each unit shouldhave only limited knowledge about other units: only units”closely” related to the current unit.

二、迪米特法则分析

1.概述

??简单地说,迪米特法则就是指 一个软件实体应当尽可能少的与其他实体发生相互

6.迪米特法则

2.朋友的分类

??在迪米特法则中,对于一个对象,其朋友包括以下几类:

??(1)当前对象本身(this);

??(2)以参数形式传入到当前对象方法中的对象;·

??(3)当前对象的成员对象;

??(4)如果当前对象的成员对象是一个集合,那么集合中的元素也都是朋友;

??(5)当前对象所创建的对象。

6.迪米特法则
??现在 A 想调用 C,先调用B,然后B再去调用C

??狭义的迪米特法则:可以降低类之间的耦合,但是会在系统中增加大量的小方法并散落在系统的各个角落。

6.迪米特法则

3.2 广义法则

??广义的迪米特法则:指对对象之间的信息流量、流向以及信息的影响的控制,主要是对信息隐藏的控制

??信息的隐藏可以使得各个子系统之间脱耦,从而允许它们独立地开发、优化、使用和修改,同时促进软的复用,由于每一个模块都不依赖于其他的模块而存在,因此都可以独立地在其他的地方使用。

??一个系统的规模越大,信息隐藏就越重要,而信息隐藏的重要性也就越明显。

3.3 主要用途

??迪米特法则的主要用途在于 控制信息的过载:

??(1)在类的划分上,应当尽量创建松耦合的类,类之间的耦合度越低,就越有利于复用,一个处在松耦合中的类一旦被修改,不会对关联的类造成太大波及;

??(2)在类的结构设计上,每一个类都应当尽量降低其成员变量和成员函数的访问权限;

??(3)在类的设计上,只要有可能,一个类型应当设计成不变类(用final 修饰);

??(4)在对其他类的引用上,一个对象对其他对象的引用应当降到最低

三、实例

6.迪米特法则

来源:行孤、

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月1日
下一篇 2021年5月1日

相关推荐