迪米特准则

迪米特准则(Law of Demeter)是面向对象设计中另一个非常实用的职责分配模式。Craig Larman将它作为PV模式的一个特例,提供了一种获得受限结构变化的机制,它给出了在一个方法内应该向哪些对象发送消息的限制。

该准则是由Karl Lieberherr等在一个叫Demeter的项目中提出来的,用于解耦因对象结构的变化和不稳定而导致与该对象耦合在一起的代码。其核心思想就是要求一个类尽量只与它的直接对象交互,避免与间接对象交互,这样就可以与最少的类产生耦合,从而使整个系统的耦合度保持最低。

该准则给出了在一个方法内应该向哪些对象发送消息的限制,规定在较少的操作,操作的关联度很高,其任务也比较单一;这其实和SRP(单一职责原则)的要求是一致的。

该准则给出了在一个方法内应该向哪些对象发送消息的限制,规定在一个方法中,消息只能发往以下对象。

◆ 对象本身。
◆ 该方法的一个参数。
◆ 对象本身的属性。
◆ 对象本身的一个属性集合中的元素。
◆ 该方法内部创建的对象。

更直观地来说,该准则限定对象只能给自身或者与自身有直接关系的对象发送消息,而避免与间接对象发送消息。由此该准则有个更形象的名称——“不要和陌生人说话”​。因为这些对象都是当前对象的“熟人”​,对象只与“熟人”说话,从而保持了系统的低耦合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值