当前位置:龙泉人才网 - 公司招聘 -

迪米特(编程思维)

  • 公司招聘
  • 2023-12-03 15:00
  • 龙泉小编
  • 编程思维-基础篇《设计模式的前言》
  • 编程思维-基础篇《设计模式的原则-开闭原则》
  • 编程思维-基础篇《设计模式的原则-里氏替换原则》
  • 编程思维-基础篇《设计模式的原则-依赖倒置原则》
  • 编程思维-基础篇《设计模式的原则-接口隔离原则》

迪米特(编程思维)


序言

小时候母亲经常告诉我们“不要和陌生人说话”,处于小孩子的安全考虑,这种宁可错杀一千,也不放松警惕的爱心警告对于软件设计同样适用。

前世今生

迪米特法则(Law of Demeter,LoD)又叫作最少知识原则(Least Knowledge Principle,LKP),产生于 1987 年美国东北大学(Northeastern University)的一个名为迪米特(Demeter)的研究项目,由伊恩·荷兰(Ian Holland)提出,被 UML 创始者之一的布奇(Booch)普及,后来又因为在经典著作《程序员修炼之道》(The Pragmatic Programmer)提及而广为人知。

解读

迪米特法则其实讲的和大人们的爱心警告是类似的,即只与你的直接朋友交谈,不跟“陌生人”说话。如果两个软件实体无须直接通信,那么就不应当发生直接的相互调用,可以通过第三方转发该调用。其目的是降低类之间的耦合度,提高模块的相对独立性。

迪米特法则中的“朋友”是指:当前对象本身、当前对象的成员对象、当前对象所创建的对象、当前对象的方法参数等,这些对象同当前对象存在关联、聚合或组合关系,可以直接访问这些对象的方法。

迪米特法则作用

  • 降低了类之间的耦合度,提高了模块的相对独立性。
  • 由于亲合度降低,从而提高了类的可复用率和系统的扩展性


但是凡事都有两面性,而这两面性的界线往往就是“度”,什么东西一旦过度,必然盛极必衰。过度使用迪米特法则会使系统产生大量的中介类,从而增加系统的复杂性,使模块之间的通信效率降低。所以,在釆用迪米特法则时需要反复权衡,确保高内聚和低耦合的同时,保证系统的结构清晰。

迪米特法则的实现方法

  • 从依赖者的角度来说,只依赖应该依赖的对象。
  • 从被依赖者的角度说,只暴露应该暴露的方法。


迪米特法则举例

“董事长与秘书的故事”,呵,不要想歪,这是一个典型的迪米特法则的应用场景,秘书负责一些董事长的预约,文书事宜等,但是事情的主题还是董事长,所以此类事件应该通过秘书来和董事长沟通。

下节预告

编程思维-基础篇《设计模式原则-合成复用原则》

免责声明:本文内容来源于网络或用户投稿,龙泉人才网仅提供信息存储空间服务,不承担相关法律责任。若收录文章侵犯到您的权益/违法违规的内容,可请联系我们删除。
https://www.lqrc.cn/a/gongsi/84991.html

  • 关注微信
下一篇:暂无

猜你喜欢

微信公众号