迪米特法则
- 一个对象应该对其他对象保持最少的了解
- 类与类关系越密切,耦合度越大
- 迪米特法则又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的 public 方法,不对外泄露任何信息
- 迪米特法则还有个更简单的定义∶ 只与直接的朋友通信
- 直接的朋友∶每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系。耦合的方式很多,依赖,关联,组合,聚合等。其中,我们称出现成员变量,方法参数,方法返回值中的类为直接的朋友,而出现在局部变量中的类不是直接的朋友。也就是说,陌生的类最好不要以局部变量的形式出现在类的内部。
这里代码就不给出了,只要知道 成员变量,方法参数,方法返回值 为直接朋友,陌生的类最好不要以局部变量的形式出现在类的内部,而是将方法中的非直接朋友放到直接朋友的类中或将非直接朋友变为直接朋友等等。
六种原则总结
原则 | 适用范围 | 原则目的 |
---|---|---|
单一职责原则 | 类、方法 | 一个类或者一个方法只负责一项职责或功能 |
接口隔离原则 | 接口、类 | 客户端不应该依赖它不需要的接口(中的方法), 即一个类对另一个类的依赖应该建立在最小的接口上 |
依赖倒转原则 | 接口、类 | 依赖倒转(倒置)的中心思想是面向接口编程
, 抽象不应该依赖细节,细节应该依赖抽象 |
里氏替换原则 | 抽象类、子类、方法 | 在子类中尽量不要重写父类的方法 |
开闭原则 | 类 | 模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方) |