六、迪米特法则
介绍
- 一个对象应该对其他对象保持最少的了解
- 类与类关系越密切,耦合度越大
- 迪米特法则又叫最少知道原则,一个类对自己依赖的类知道的越少越好(所以要求被依赖的类尽量将逻辑封装在内部,只对外暴露出public方法提供使用)
- 更简洁的定义:只与"直接的朋友"进行通信
- 依赖的类是成员变量
- 依赖的类是方法参数
- 依赖的类是返回值
class A{
private B b; ==>符合第一条
public void run(B b){ ==>符合第二条
...
}
public B fly(){ ==>符合第三条
...
} }
总结:该原则也没什么好说的,就是尽量在自己的类中封装好逻辑,供其他的类使用。
等到门面模式时候可以更好体会到该原则
七、合成复用原则
介绍
尽量使用合成/聚合的方式,而不是使用继承
问题:
当一个B类想用operation1和operation2的时候最方便的方法就是直接继承A类,但是A类有一天忽然增加了一个operation3,则B类也不得不去实现operation3方法
解决方法:
- 左上:使用依赖
- 右上:使用组合
- 左下:聚合
总结
-
找出应用中可能需要变化之处,把它们独立出来,不要和那些不需要变化的代码混在一起
-
针对接口编程,而不是针对实现编程
-
为了交互对象间的松耦合设计而努力