迪米特原则


文档摘要

迪米特原则 迪米特法则,Law of Demeter,简称 LoD,也叫最小知识原则。是指如果两个类不必彼此互相通信,那么这两个类就不应当发生直接的相互作用;如果其中一个类需要调用另一个类的某一个方法,可以通过第三者转发这个调用。 使用动机 强调类之间的松耦合。类之间的耦合越弱,越有利于复用和扩展。另外,一个处于弱耦合的类被修改,不会对有关系的类造成波及。 如何使用 在类的结构设计上,每一个类都应当尽量降低成员的访问权限,不需要让别的类知道的字段或行为就不要公开。 类之间不直接建立联系,通过中间类来中转。 使用原则 减少公开方法和变量。 每个类对其他类知道的越少越好。 类不应该知道它所操作的对象的内部细节。 使用示例 以跨部门办事为例。

迪米特原则

迪米特法则,Law of Demeter,简称 LoD,也叫最小知识原则。是指如果两个类不必彼此互相通信,那么这两个类就不应当发生直接的相互作用;如果其中一个类需要调用另一个类的某一个方法,可以通过第三者转发这个调用。

使用动机

强调类之间的松耦合。类之间的耦合越弱,越有利于复用和扩展。另外,一个处于弱耦合的类被修改,不会对有关系的类造成波及。

如何使用

  • 在类的结构设计上,每一个类都应当尽量降低成员的访问权限,不需要让别的类知道的字段或行为就不要公开。
  • 类之间不直接建立联系,通过中间类来中转。

使用原则

  • 减少公开方法和变量。
  • 每个类对其他类知道的越少越好。
  • 类不应该知道它所操作的对象的内部细节。

使用示例

以跨部门办事为例。

假设我们电脑出问题了,第一反应是找运维部门的熟人帮忙看看,这等于直接操作了运维部门的内部。这样的好处几乎没有,但问题很多。也许有人会说都找到人直接解决问题了,不是很高效吗,其实并不是。首先,你找熟人时,他不一定有时间,也许手里还有更重要、更紧急的事情在忙;其次,他也许也不知道你的问题,或者说他不负责这一块,无能为力;还有,如果他人际关系不错,很多人出问题了都来找他,还会导致部门内工作不均衡;另外,他自己一直在解决问题,但是领导却并不知晓,即便知道也不能接受。总而言之,如果都去找熟人,最后效率和满意度都不会很高。

这时候最好的做法是提供一个运维部门的问题反馈入口,由这名同事将收集到的问题分门别类,统一分派给部门内相应的人员进行处理。这样不仅资源得到了均衡,而且还易于批量解决问题,领导查看也一目了然。即便有同事请假,那也是运维部门内部的事情,由内部自己解决,并不影响外部使用。


作者与出处
原作者: Datawhale
来源:Datawhale
许可证:CC BY-NC-SA 4.0
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: Datawhale 转发
评论区 (0)
U