设计模式之禅之迪米特法则

声明:本文为阅读秦小波所写的《设计模式之禅》所写小结,文章内容可能有部分引述此书。

迪米特法则(Law of Demeter)——最少知识原则(Least knowledge Principle)

1、定义:

   一个对象应该对其他对象有最少的了解;一个类应该对自己需要耦合或调用的类知道最少。

迪米特法则有以下四层含义:

   1) 只和直接的朋友交流: 直接朋友也要处理好自己的依赖关系,不要将其引入到第三方;
      朋友类:出现在成员、方法的输入输出参数中的类(不是出现在方法内部的类);
      除了以上位置的类,不要再对其他类产生依赖(JDK的API除外),这样可以提高健壮性,降低耦合。
      注意:不要出现一直getA().getB().getC()……,除非其返回值均相同。
   2) 朋友间也是有距离的:对朋友的依赖也要尽可能少;
      一个类应减少public的属性或方法,这样可以降低修改时涉及面的程度,也减少了变量引起的风险扩散。
   3) 是自己的就是自己的;
      如果一个方法放在本类中,既不增加类间关系,也对本类不产生负面影响,那就放在本类中。
   4) 谨慎使用Serializable:网络传输时要注意。
      RMI(Remote Method Invocation,远程方法调用)时,传递一个VO(Value Object,值对象),这个对象就必须实现Serializable接      口(网络传输对象序列化);当这个VO发生属性访问权限变更,客户端和服务器未同步时,则会发生序列化失败。

小结:迪米特法则核心就是类间解耦,但低耦合有可能造成高复杂度,只要类间跳转不超过两次都是可以的,具体问题具体分析。

注:本文大多数内容基本从《设计模式之禅中》摘录,也有小部分自己的理解,如果有误欢迎大家批评指正。如有问题,也欢迎大家积极留言探讨。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值