设计原则-迪米特法则

迪米特法则: 一个软件实体应当尽量少地与其它实体发生相互做用.函数

若是一个系统符合迪米特法则, 那么当其中某一个模块发生修改时, 就会尽可能少地影响其余模块, 扩展会相对容易, 这是对软件实体之间通讯的限制, 迪米特法则要求限制软件实体之间通讯的宽度和深度. 迪米特法则可下降系统的耦合度, 使类与类之间保持松散的耦合关系..net

迪米特法则还有几种定义形式, 包括: 不要和"陌生人"说话, 只与你的直接朋友通讯等, 在迪米特法则中, 对于一个对象他的朋友包括如下几类:设计

  • 当前对象自己.
  • 以参数形式传入当前对象/方法中的对象.
  • 当前对象的成员对象.
  • 若是当前对象的成员对象是一个集合, 那么集合中的元素也都是朋友.
  • 当前对象所建立的对象.

任何一个对象, 在知足上面的条件之一, 就是当前对象的朋友, 不然就是陌生人. 在应用迪米特法则时, 一个对象只能与直接朋友发生交互, 不要和陌生人发生直接交互, 这丫很难过作能够下降系统的耦合度, 一个对象的改变不会给太多其余度夏宁带来影响.对象

迪米特法则要求咱们在设计系统时候, **应该尽可能减小系统之间的交互, 若是两个对象之间没必要彼此直接通讯, 那么这两个对象就不该该发生任何的直接的相互做用, 若是其中一个对象须要调用另外一个对象的某一个方法, 能够经过第三者转发这个调用. **简言之. 就是经过引入一个合理的第三者来下降现有对象之间的耦合度.blog

在将迪米特法则运用到系统设计中时候, 要注意如下几点: 在类的划分上, 应当尽可能建立松耦合的类, 类之间的耦合度越低, 就越有利于复用, 一个处于松耦合的类一旦被修改, 不会对关联的类形成太大的波及; 子啊类的结构设计上, 每个类都应该尽可能下降其成员变量和成员函数的访问权限; 在类的设计上, 只要有可能, 一个类型应当被设计成不变类; 在对其它类的引用上, 一个对象对其它对象的引用应当降到最低.get

更多详情请参考原文:io

Reference: http://blog.csdn.net/lovelion/article/details/7563445变量

相关文章
相关标签/搜索