`
vking_wang
  • 浏览: 10581 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

六大设计原则总结:5)迪米特法则 -Law of Demeter

 
阅读更多

LoD,Law of Demeter:

又称最少知识原则(Least Knowledge Principle),一个对象应该对其他对象有最少的了解

一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。


问题由来:

类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。


解决方案:

迪米特法则包含4层含义:

1)只和朋友交流

Only talk to your immediate friends.两个对象之间的耦合就成为朋友关系。即,出现在成员变量、方法输入输出参数中的类就是朋友;局部变量不属于朋友。

--> 不与无关的对象发生耦合!

例如:Teacher类可以命令TeamLeader对Students进行清点,则Teacher无需和Students耦合,只需和TeamLeader耦合即可。


2)朋友间也应该有距离

即使是朋友类之间也不能无话不说,无所不知。

--> 一个类公开的public属性或方法应该尽可能少!


3)是自己的就是自己的

如果一个方法放在本类中也可以、放在其他类中也可以,怎么办?

--> 如果一个方法放在本类中,既不增加类间关系,也对本类不产生负面影响,就放置在本类中。


4)谨慎使用Serializable

否则,若后来修改了属性,序列化时会抛异常NotSerializableException。


建议:

迪米特法则的核心观念是:类间解耦。

其结果是产生了大量中转或跳转类。






分享到:
评论

相关推荐

    设计模式六大原则

    #### 五、迪米特法则(Law of Demeter) **含义:** 迪米特法则又称为最少知道原则,其核心思想是一个软件实体应当尽可能少地与其他实体发生相互作用。这样可以降低系统的复杂性,提高模块之间的独立性。 **具体...

    设计模式总结

    设计模式总结、 -- 一,六大设计原则 一,六大设计原则 ... 迪米特法则(Law of Demeter) 也称最小知识原则,一个类应该对自己耦合或者调用的类知道的 越少越好。 开闭原则 对拓展开发,对修改关闭

    面向对象六大设计原则

    1、“开-闭”原则(Open-Closed Principle,OCP) 2、里氏替换原则(Liskov Substitution Principle,LSP) 3、依赖倒置原则(Dependence Inversion Principle,DIP) ...6、迪米特法则(Law of Demeter,LoD)

    设计模式六大原则与类的六种关系

    5. 迪米特法则(Law of Demeter) 迪米特法则是指最少知道。尽量降低类与类间的耦合。迪米特法则主要是为了解决类与类之间的耦合问题。 6. 开闭原则(Open-Closed Principle) 开闭原则是指对扩展开放,对修改...

    java的24种设计模式介绍与6大设计原则

    迪米特法则(Law of Demeter) 一个对象应当对其他对象尽可能少的了解。 **应用场景:** - 当对象之间的交互过于复杂时。 **好处:** - 降低对象之间的耦合度。 - 更容易理解和维护。 #### 6. 开闭原则(Open-...

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

    5. 迪米特法则(Law of Demeter,LoD):一个对象应该对其他对象有最少的了解。也被称为“最少知识原则”,它鼓励降低类之间的耦合,减少类之间不必要的交互。 理解和应用这些设计原则,可以帮助我们构建更加灵活、...

    六大设计原则.docx

    【六大设计原则】是软件开发中的核心指导原则,它们包括单一职责原则(Single Responsibility Principle,SRP)、开闭原则(Open Closed Principle,OCP)、里氏替换原则(Liskov Substitution Principle,LSP)、...

    软件设计原则的PPT,设计软件原则的PPT

    6. **迪米特法则(Law of Demeter, LoD)**:一个对象应该只与其直接朋友交互,而不是间接通过朋友的朋友。这减少了对象之间的相互依赖,提高系统的独立性。 7. **软件可维护性设计**: - **可维护性**是软件的...

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

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

    程序设计六大原则及代码样例

    LSP)、依赖倒置原则(Dependence Inversion Principle, DIP)、接口隔离原则(Interface Segregation Principle, ISP)、迪米特法则(Law of Demeter, LoD)以及开闭原则(Open Closed Principle, OCP)。...

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

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

    设计模式六大原则.doc

    5. 迪米特法则(Law of Demeter, LoD): 也称为最少知道原则,它建议一个对象应当尽量减少与其他对象的交互,只与直接的朋友通信。避免过多的间接关联可以降低系统的复杂性,提高模块的独立性,同时减少错误传播的...

    六种设计原则

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

    android 24种设计模式介绍与6大设计原则

    6. **迪米特法则(Law of Demeter, LoD)**:一个对象应该只与它的直接朋友通信,不应该与陌生人交谈。这减少了类之间的耦合,提高系统的内聚性。 二、24种设计模式 1. **创建型模式(Creational Patterns)**: ...

    浅谈C#六大设计原则

    迪米特法则(Law of Demeter,LoD)也称为最少知识原则,它建议一个对象应该尽量减少与其它对象的交互,只和它的直接朋友通信。简单来说,一个对象应尽可能少地知道其他对象的内部细节。在实践中,这意味着避免深层...

    设计模式6大法则

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

    6大设计原则

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

Global site tag (gtag.js) - Google Analytics