设计模式11迪米特法则
最少知识原则(迪米特法则)
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。
如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这调用。
在类的结构设计上,每一个类都应当尽量降低成员的访问权限,一个类包装好自己的private状态,不需要让别的类知道的字段或行为就不要公开。
好比一个公司的两个部门合作,一个部门只需要把相关的指令传递给另一个部门,而不必传递给该部门具体的某个人。
引用自:https:zhuanlan。zhihu。comp158401875
迪米特法则是一种面向对象系统设计风格的一种法则,尤其适合做大型复杂系统设计指导原则。但是也会造成系统的不同模块之间的通信效率降低,使系统的不同模块之间不容易协调等缺点。同时,因为迪米特法则要求类与类之间尽量不直接通信,如果类之间需要通信就通过第三方转发的方式,这就直接导致了系统中存在大量的中介类,这些类存在的唯一原因是为了传递类与类之间的相互调用关系,这就毫无疑问的增加了系统的复杂度。解决这个问题的方式是:使用依赖倒转原则,这要就可以是调用方和被调用方之间有了一个抽象层,被调用方在遵循抽象层的前提下就可以自由的变化,此时抽象层成了调用方的朋友。