迪米特法则LoD(Law of Demeter,LoD):一个类应当对其他对象尽可能少的了解,从而降低各个对象之间的耦合,提高系统的可维护性。例如在一个程序中,各个模块之间相互调用时,通常会提供一个统一的接口来实现。这样其他模块不需要了解另外一个模块的内部实现细节,这样当一个模块内部的实现发生改变时,不会影响其他模块的调用。(黑盒原理)


如下三个市民需要买房,每个市民需要对每个房子都去了解(业主是谁,房子多大,周边环境等等 ),会形成蜘蛛网型,也就是每个市民模块都需要知道每个房屋模块的详细内容。迪米特法则旨在降低耦合性,降低应用层和具体实现层的依赖关系。

go语言设计模式-迪米特法则_迪米特法则


套用迪米特法则,A B C只需要跟中介打交道,而中介知道房子的所有的信息,此时增加一个买房的用户D或者是新的房产信息4就很方便,不需要像前者一样市民需要关联所有的房产媒介。

go语言设计模式-迪米特法则_迪米特法则_02