面向对象的特性之一:封装。不需要知道具体如何实现的细节,只需要调用某个类的方法,得到预期的结果。尽可能少的使用public,降低成员的访问权限。可以更好降低类与类之间的耦合度。程序设计时,修改一个越弱耦合的类,对系统造成的影响就会越小,耦合度越低,越利于复用。这就是迪米特法则的根本思想。
依赖接口而不是依赖实现,在弱耦合、低权限的基础上,完全不需要关心接口的实现细节,这也就是依赖倒转原则。面向对象的原则和面向对象的特性是不对立的。
迪米特法则:如果两个类,不需要直接进行两个类之间的通信,那么,这两个类就不应该直接发生作用和求情,如果一个类在特定条件下需要调用另一个类,那么,可以通过第三个类来实现,转发这个调用。
是不是又用点像代理模式?代理模式是针对对象的,代理类实例化真实类,调用真实类的方法。而迪米特法则是一个类调用另一个类,然后这个另一个类再调用另另一个类。

标签: PHP, 设计模式, 迪米特法则

添加新评论