什么是迪米特法则?
迪米特法则也叫做最少知识原则。
还有一个这样的说法,就是“只和你的直接朋友交谈,不要跟陌生人交谈”。
该怎么理解以上这些内容呢?
含义
首先其含义是:如果两个软件实体不需要直接通信,那么就不应当发生直接的调用,如果需要进行调用的话可以通过第三方进行转发调用,这样做的目的是为了降低类和类之间的耦合性,同时提高对应模块的独立性,简单点理解就是为了达到 低耦合、高复用 的目的。
以上说的“朋友”是指和当前对象有着直接关系的对象,例如当前对象的成员对象、对象所创建的对象等,和当前对象有着关联关系的对象是可以直接访问当前对象的方法。
例子
比如说我们在外打工的时候需要租房子,我们更多的时候是找到房屋中介公司找对应的房子资源,而很少直接找到房主进行沟通租房子。
房屋中介公司他一般情况下不可能只有一套房子的资源,而是会有多个房子的资源,对于房屋中介公司就是一个资源整合的平台,而对于我们想租哪里的房子只需要和房屋中介公司进行协商即可。然后由房屋中介公司去联系房东,这样我们就不需要每看一套房子就联系一个房东了。
再比如我们工作中,如果有一个公司需要做一个软件,那么这个公司一般情况下也是找软件公司进行对接,而不是直接找到软件开发工程师,虽然最后还是对应的软件工程师进行具体的开发。\
工作中经常遇到的场景
符合迪米特法则的在工作中遇到的技术和场景例如代理模式,然后就是消息队列,通过消息队列,负债均衡等。