`

最少知识原则

 
阅读更多

迪米特法则(Law of Demeter)又叫作最少知道原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。英文简写为: LoD.

迪米特法则可以简单说成:talk only to your immediate friends。 对于面向OOD来说,又被解释为下面几种方式:一个软件实体应当尽可能少的与其他实体发生相互作用。每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单位。
迪米特法则的初衷在于降低类之间的耦合。由于每个类尽量减少对其他类的依赖,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。
迪米特法则不希望类直接建立直接的接触。如果真的有需要建立联系,也希望能通过它的友元类来转达。因此,应用迪米特法则有可能造成的一个后果就是:系统中存在大量的中介类,这些类之所以存在完全是为了传递类之间的相互调用关系——这在一定程度上增加了系统的复杂度。
有兴趣可以研究一下设计模式的门面模式(Facade)和中介模式(Mediator),都是迪米特法则应用的例子。
分享到:
评论

相关推荐

    设计模式(十二)迪米特原则(最少知识原则).zip

    迪米特原则(Least Knowledge Principle,LKP),也被称为最少知识原则,是软件设计中的一个重要概念,属于面向对象设计的基本原则之一。这个原则的核心思想是降低类与类之间的耦合度,使得系统更加灵活,可维护性和...

    软件设计6原则

    简称DIP)、里氏替换原则(Liskov Substitution Principle,简称LSP)、最少知识原则(Least Knowledge Principle)以及迪米特法则(Law of Demeter,简称LoD)。下面将对这六个原则进行详细解读: 1. 单一责任原则...

    软件开发设计原则

    这些原则包括单一职责原则、开放封闭原则、里氏替换原则、最少知识原则、接口隔离原则和依赖倒置原则等。 1. 单一职责原则(Single Responsibility Principle - SRP) 单一职责原则是指一个类应该只有一个原因去...

    第十六课 js设计原则1

    本篇将详细讲解三个重要的原则:单一职责原则、开放封闭原则和最少知识原则。 首先,**单一职责原则**(Single Responsibility Principle, SRP)强调一个对象或函数应仅有一个引起其变化的原因。这意味着每个函数或...

    一些软件设计的原则一些软件设计的原则

    迪米特法则提倡每个对象应该对其他对象有最少的了解,也称为最少知识原则。这意味着对象只应与其直接的朋友交互,而不应了解过多的外部细节。遵循这一原则可以降低模块间的耦合,提高系统的可维护性。 以上原则...

    C++设计原则 完整整理 快速理解设计原则

    - 也称为最少知识原则,它要求一个对象应当尽量少地了解其依赖对象的内部细节。一个对象只应该与其直接的朋友通信,避免深层的耦合。遵循这个原则可以减少类之间的交互复杂性,提高系统的可维护性。 7. **合成/...

    软件架构设计的6大原则.pdf

    最少知识原则是指对象之间的交互应该尽量减少,从而减小类之间的耦合。这个原则强调了类的独立性和低耦合性,防止类之间的紧耦合。应用时,需要尽量减小依赖关系,避免类之间的过于紧密的耦合。 5. 接口隔离原则...

    设计模式六大原则详解 经典

    迪米特法则(Law of Demeter,LoD),又称最少知识原则,提倡一个对象应该尽量少地了解其他对象的内部细节。遵循这一原则可以减少类之间的交互,降低系统的复杂性,使得修改和扩展变得更容易。 这六大原则共同构成...

    设计模式六大原则

    也称为最少知识原则,迪米特法则建议一个对象应该尽量减少对其他对象的了解,仅与直接的朋友通信。这有助于降低系统的复杂性,提高模块的独立性。 6. 开闭原则(Open-Closed Principle, OCP) OCP指出,软件实体...

    面向对象七大基本设计原则.pdf

    文档中还提及了OOD中的Law of Demeter(迪米特法则),又称为最少知识原则(Least Knowledge Principle)。它建议不要让一个对象知道太多关于另一个对象的信息,只和它的直接朋友通信。这样做可以降低对象之间的耦合...

    面向对象设计的基本原则

    - 也称为最少知识原则,它建议一个对象应该尽量少地了解其他对象的内部细节。每个对象都应尽量减少与外部对象的交互,只与直接的朋友通信。这有助于降低系统的复杂性,增强模块的独立性。 在实际编程中,设计模式...

    24种设计模式介绍与6大设计原则-PDF版 查阅方便

    6. 迪米特法则(最少知识原则):一个对象应该对其他对象有最少的了解,减少对象间的交互。 二、24种设计模式 1. 创建型模式:单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式,它们主要解决对象创建...

    阿里Java研发工程师面经知识点

    - 迪米特法则(最少知识原则)则建议一个对象应当对其他对象有尽可能少的了解。 最后,了解Java中的重载(Overloading)和重写(Overriding)也是非常重要的。方法重载发生在同一个类中,而方法重写发生在子类和...

    JAVA 24种设计模式介绍与6大设计原则.pdf

    5. 迪米特法则(Law of Demeter, LoD)或最少知识原则:一个对象应当对其他对象有尽可能少的了解。 6. 开闭原则(Open/Closed Principle, OCP):软件实体应当对扩展开放,对修改关闭。这意味着在不修改现有系统的...

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

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

    设计模式与设计原则.pdf

    5. 迪米特法则(Law of Demeter, LoD):也称作最少知识原则,它要求一个对象对其他对象有最少的了解。也就是说,一个对象应当尽可能少地与其他对象发生相互作用。 6. 开闭原则(Open/Closed Principle, OCP):...

    软件开发设计原则定义.pdf

    4. **最少知识原则(LKP)/迪米特法则(Law of Demeter)**: 这个原则要求对象只与直接关联的对象交互,以减少类之间的耦合度。遵循此原则,可以降低系统的复杂性,提高模块的独立性。例如,一个类不应直接访问...

    面向对象设计原则Java.ppt

    迪米特法则也称为“最少知识原则”,建议一个对象应该尽量少地了解其外部对象的细节。这减少了类之间的直接交互,降低耦合,提高系统的可维护性。 这些原则共同构成了面向对象设计的基础,通过它们,开发者可以...

Global site tag (gtag.js) - Google Analytics