迪米特法则(Law of Demeter)

32 篇文章 0 订阅
13 篇文章 0 订阅

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

(1)   不要和“陌生人”说话。

(2)   只与你的直接朋友通信。

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

(4)   一个对象应当对其他对象有尽可能少的了解。

迪米特法则要点:

迪米特法则说的是一个对象应该对其它对象有尽可能少的了解。即只与你直接的朋友通信,不要跟陌生人说话。如果需要和陌生人通话,而你的朋友与陌生人是朋友,那么可以将你对陌生人的调用由你的朋友转发,使得某人只知道朋友,不知道陌生人。换言之,某人会认为他所调用的是朋友的方法。

以下条件称为朋友的条件:

1)  当前对象本身

2)  以参量的形式传入到当前对象方法中的对象

3)  当前对象的实例变量直接引用的对象

4)  当前对象的实例变量如果是一个聚集,那么聚集中的元素也都是朋友

5)  当前对象所创建的对象

迪米特法则的主要用意是控制信息的过载,在将其运用到系统设计中应注意以下几点:

1)  在类的划分上,应当创建有弱耦合的类。类之间的耦合越弱,就越有利于复用

2)  在类的结构设计上,每一个类都应当尽量降低成员的访问权限。一个类不应当public自己的属性,而应当提供取值和赋值的方法让外界间接访问自己的属性

3)  在类的设计上,只要有可能,一个类应当设计成不变类

4 )  在对其它对象的引用上,一个类对其它对象的引用应该降到最低
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值