迪米特法则
迪米特法则又称为最少知识法则,其含义是指一个对象应当对其他对象尽可能地了解。这个思想和模块化程序设计中得高内聚低耦合的道理相同。
简明的表述:
- 只和你直接的朋友们通信
- 不要和"陌生人"说话
- 每一个软件单位对其他的单位都只有最少的知识,而且局限于那些与本单位密切相关的软件单元。
简单示例
A 和 B 是朋友,B 和 C 是朋友,但是 A 和 C 是陌生人,那么,假设 A 要和 C 通话,那么对于迪米特法则来说,下面两个设计一个是符合的,一个是不符合的。
Bad:
Good:
优缺点
- 对产生大量的小方法,这些方法没有太大的作用,除了传递间接的调用。