码迷,mamicode.com
首页 > 其他好文 > 详细

面象对象设计6大原则之六:迪米特原则

时间:2017-11-28 19:45:26      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:提高   工作   出现   利弊   修改   升级   就是   定义   方法   

迪米特原则(LOD),The Law Of Demeter,也称为最少知识原则

 

定义

一个对象应该对其他对象有最少的了解。

也就是说一个类耦合和调用一个类应该知道的最少,它只关心被耦合和调用的类的公共方法,而被耦合和调用的类如何复杂它并不关心。这在另一程度也说明类方法的最小权限性,不要随意定义public公开方法,你只公开你需要公开的。

迪米特原则对类的低耦合度提出了以下几点要求:

1、只和朋友类交流

类与类之间的交流无需知道内部结构,其内部与其他陌生类打交道我并不关心。

2、朋友类之间的距离

一个类公开的属性和方法越多,其被修改的可能性也会更大,所以在设计一个的时候要权衡利弊,把范围定义在合理的范围内。

所以,迪米特很明显的优点是低耦合度,提高了系统的可维护性和可扩展性。 但另一方面,为了满足这些特性而又不得不增加很多包装的类或方法,这在一定程度上也就提高了类的复杂性。

实际上这些原则将的都是未来降低耦合度,提高代码复用。我来总结一下:

单一职责原则:就是接口最小化,一个类只负责一个工作,所以修改这个类的话也是因为它负责的这块工作出来问题才会去修改

开放封闭原则:对修改关闭,对扩展开放,这样会在造成最少BUG的情况下对系统做升级、维护等工作。

里氏替换原则:基类出现的地方能够被子类完美的代替,从面向对象的设计语言来说,用子类来代替基类是一种多态的表现,里氏替换原则也算是程序设计的理论的基石了,如果没有这个原则,那我们就不能够解决耦合的问题,依赖倒置、控制反转了。

接口隔离原则:接口最小化,我不明白有了单一职责原则还要它有什么用。这个原则也是提倡将功能分离出来,不要做大接口。

依赖倒置原则:上下层不互相依赖,通过在中间增加接口来降低上下层的耦合,还是那句话,任何问题都能通过增加一层来解决。

迪米特原则(最少知识原则):我们在设计类的时候就要考虑清除那些是可以被公共调用的而那些是类内部的逻辑,不需要让第三方来调用的,也就是告诉我们不要动不动就将类内部的字段、属性、方法都定义成public。




参考链接:http://www.jianshu.com/p/dc9c0b493084

面象对象设计6大原则之六:迪米特原则

标签:提高   工作   出现   利弊   修改   升级   就是   定义   方法   

原文地址:http://www.cnblogs.com/pangjianxin/p/7911557.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!