`
zhuyingya87
  • 浏览: 34532 次
  • 性别: Icon_minigender_2
  • 来自: 深圳
社区版块
存档分类
最新评论

LoD 迪米特法则

阅读更多
迪米特法则(LoD):又称最少知识原则(LKP),就是说一个对象应当对其他对象尽可能少的了解。


狭义的迪米特法则:

如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用.如果其中一个类需要调用另一个类的方法的话,可以通过第三者转发这个调用.

缺点:

会在系统内造出大量的小方法,散落在系统的各个角落.这些方法仅仅是传递间接的调用,因此系统与系统中的商业逻辑无关.当设计师试图从一张类图看出总体的构架时,这些小方法会造成迷惑和困扰.

为了克服狭义迪米特法则的缺点,可以使用依赖倒转原则,引入一个抽象的类型引用"抽象陌生人"对象,使"某人"依赖于"抽象陌生人",换言之,就是将"抽象陌生人"变成朋友.


广义的迪米特法则:

一个模块设计得好坏的一个重要的标志就是该模块在多大的程度上将自己的内部数据与实现有关的细节隐藏起来.

信息的隐藏非常重要的原因在于,它可以使各个子系统之间脱耦,从而允许它们独立地被开发,优化,使用阅读以及修改.

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

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

* 在类的结构设计上,每一个类都应当尽量降低成员的访问权限.

* 在类的设计上,只要可能,一个类应当设计成不变类.

* 在对其他类的引用上,一个对象对其他对象的引用应降到最低.

* 尽量限制局部变量的有效范围.
分享到:
评论

相关推荐

    迪米特法则LoD.zip

    迪米特法则(Law of Demeter,简称LoD)是面向对象设计中的一种重要原则,源自1987年在 Northeastern University 提出。这个法则旨在降低类与类之间的耦合,提高系统的可维护性和可扩展性。在中文环境中,迪米特法则...

    第三十讲:基础五迪米特法则

    在编程和软件设计中,迪米特法则(Law of Demeter,简称LoD)是一个重要的设计原则,它属于面向对象设计中的一个最佳实践。迪米特法则得名于希腊神话中的先知迪米特,其核心思想是“只与你的直接朋友交谈”。这一...

    22丨理论八:如何用迪米特法则(LOD)实现“高内聚、松耦合”? 1

    迪米特法则,又称最小知识原则,主张一个对象应该尽量减少对其他对象的了解,只与其直接相关的对象交互,避免通过第三方对象进行通信,以此降低耦合度。 迪米特法则的英文名Law of Demeter,强调了每个对象应该限制...

    迪米特法测

    迪米特法则(Law of Demeter,LoD)是软件设计模式中的一种,它源于对象导向编程领域,旨在降低类与类之间的耦合性,提高系统的可维护性和可扩展性。这一法则通常被称为“最少知识原则”,即一个对象应当对其他对象...

    JAVA与模式

    com.javapatterns.liskov 里氏代换原则 com.javapatterns.dip 依赖倒转原则 com.javapatterns.isp 接口隔离原则 com.javapatterns.carp 组合/聚合复用原则 com.javapatterns.lod 迪米特法则 ...

    C++设计模式迪米特法则实例

    迪米特法则(Law of Demeter)又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD. 类的设计接口尽量封装完善,让外部直接...

    源码:阎宏设计模式光盘

    com.javapatterns.lod 迪米特法则 com.javapatterns.mediator 调停者模式 com.javapatterns.memento 备忘录模式 com.javapatterns.multilingual 专题 com.javapatterns.observer 观察者模式 ...

    面向对象设计原则Java概要.ppt

    迪米特法则  迪米特法则简介 迪米特法则(Law of Demeter, LoD)又称为最少知识原则,它建议一个对象应该尽可能少地了解其他对象的内部细节,通过最小化类之间的交互来降低耦合。 迪米特法则  迪米特法则的应用...

    【设计模式】基于c#23种设计模式案例实现.zip

     迪米特法则(Law of Demeter,LoD)又叫最少知识原则(Least Knowledge Principle,LKP),指的是一个对象应当对其他对象有尽可能少的了解。也就是说,一个模块或对象应尽量少的与其他实体之间发生相互作用,使得...

    设计模式6大法则

    5. 迪米特法则(Law of Demeter, LoD) 迪米特法则又称作最少知识原则,它提倡一个对象应尽可能少地了解其他对象的内部细节。通过限制对象之间的直接交互,降低耦合度,提高系统的可理解和可维护性。遵循LoD,我们...

    SQL语句优化2

    开-闭原则(OCP):一个软件实体应当对扩展开放,对修改关闭。 里氏代换原则(LSP):一个软件实体如果使用的是一个基类的话,那么一定适用于其子类。...迪米特法则(LoD):一个对象应当对其他对象有尽可能少的了解

    灸哥讲设计么:为什么学?怎么学 & 软件设计七原则解读

    在SOLID原则基础上,还有CARP(组合/聚合复用原则)和LoD(迪米特法则)。 - 单一职责原则(SRP):一个类应该只有一个引起它变化的原因,也就是说,一个类只做一件事。 - 开闭原则(OCP):软件实体(类、模块、...

    设计模式六大原则 .docx

    5、迪米特法则(LoD) 迪米特法则建议,一个类应当尽可能少地了解其他类,只与其直接相关的类交互。如果需要与其他类通信,应通过第三方类作为中介。这降低了类之间的耦合度,提高了系统的可维护性。例如,外观模式...

    六种设计原则

    本文将详细探讨六种核心的设计原则,它们分别是开闭原则(Open-Closed Principle, OCP)、里氏代换原则(Liskov Substitution Principle, LSP)、迪米特法则(Law of Demeter, LoD)、依赖倒转原则(Dependency ...

    课后题目三1

    2. **迪米特法则(Law of Demeter, LoD)**:也称为最少知识原则,迪米特法则建议一个对象应该仅与其直接朋友交互,而不是通过陌生的对象。简单来说,就是每个对象应该尽量减少与其他对象的交互,只与直接依赖的对象...

    面向对象的设计的原则 电子版

    7. 迪米特法则(LoD):一个软件实体应当尽可能少地与其他实体发生相互作用。迪米特法则告诉我们,在软件设计中,我们需要限制软件实体之间的通信,降低系统的耦合度,使类与类之间保持松散的耦合关系。 遵循面向...

    6大设计原则

    这六大设计原则包括单一职责原则(SRP)、开闭原则(OCP)、里氏替换原则(LSP)、接口隔离原则(ISP)、依赖倒置原则(DIP)以及迪米特法则(LoD)。接下来,我们将深入探讨这些原则的含义及其在实际编程中的应用。...

    一些面向对象的设计法则

    6. **迪米特法则**(Law of Demeter, LoD):一个对象应该尽可能少地了解其他对象。换句话说,一个对象应该只与直接的朋友交互,而不是通过朋友的朋友进行通信。这有助于减少耦合度,增强系统的可测试性和可维护性。...

    一些面向对象的设计法则.rar_design_面向对象

    6. **迪米特法则(Law of Demeter, LoD)**:一个对象应该对其他对象有最少的了解。这意味着一个对象尽量减少与其他对象的交互,以降低耦合度,提高模块的独立性。 在实际应用中,这些法则可以帮助我们构建出更健壮...

Global site tag (gtag.js) - Google Analytics