一、迪米特法则:LOD 高内聚,松耦合
1、高内聚、松耦合
高内聚用来指导类本身的设计,松耦合用来指导类与类之间依赖关系的设计。
高内聚就是相近的功能应该放到同一个类中,不相近的功能不要放到同一个类中。相近的功能往往被同时修改,放到同一个类中,修改会比较集中。
单一职责原则是实现代码高内聚有效的设计原则。
松耦合就是类与类之间的依赖关系简单清晰。即使两个类有依赖关系,一个类的代码改动也不会或者很少导致依赖类的代码改动。
依赖注入,接口隔离、基于接口而非实现编程,以及迪米特法则,都是为了实现松耦合。
高内聚,松耦合能提高代码可读性和可维护性,缩小功能改动导致的代码改动范围(不会牵一发而动全身)。
2、迪米特法则
迪米特法则:
不该有直接依赖关系的类之间,不要有依赖;
有依赖关系的类之间,尽量只依赖必要的接口。
迪米特法则是希望减少类之间的耦合,让类越独立越好。每个类都应该少了解系统的其他部分。
因为一旦发生变化,需要了解这一变化的类就会比较少,从而缩小功能改动导致的代码改动范围