设计模式之迪米特法则

迪米特法则

定义

迪米特法则( Law of Demeter, LoD) 也称为最少知识原则( Least KnowledgePrinciple, LKP) , 虽然名字不同, 但描述的是同一个规则: 一个对象应该对其他对象有最少的了解。 通俗地讲, 一个类应该对自己需要耦合或调用的类知道得最少

要求

  1. 只和朋友交流
    只与直接的朋友通信。

  2. 朋友间也是有距离的。
    迪米特法则就是对这个距离进行描述, 即使是朋友类之间
    也不能无话不说, 无所不知。

  3. 是自己的就是自己的
    在实际应用中经常会出现这样一个方法: 放在本类中也可以, 放在其他类中也没有错,那怎么去衡量呢? 你可以坚持这样一个原则: 如果一个方法放在本类中, 既不增加类间关系, 也对本类不产生负面影响, 那就放置在本类中。

  4. 谨慎使用Serializable

最佳实践

迪米特法则的核心观念就是类间解耦, 弱耦合, 只有弱耦合了以后, 类的复用率才可以提高。 其要求的结果就是产生了大量的中转或跳转类, 导致系统的复杂性提高, 同时也为维护带来了难度。 读者在采用迪米特法则时需要反复权衡, 既做到让结构清晰, 又做到高内聚低耦合。

在实际应用中, 如果一个类跳转两次以上才能访问到另一个类, 就需要想办法进行重构了, 为什么是两次以上呢? 因为一个系统的成功不仅仅是一个标准或是原则就能够决定的, 有非常多的外在因素决定, 跳转次数越多, 系统越复杂, 维护就越困难, 所以只要跳转不超过两次都是可以忍受的, 这需要具体问题具体分析

posted @ 2017-04-14 17:23  omsfuk  阅读(81)  评论(0)    收藏  举报