第十一章 无熟人难办事—迪米特法则
2016-04-26 11:37
288 查看
仅仅是个人学习笔记,不具备参考价值
怎么理解迪米特法则呢,就像书中举的例子,小菜需要安装电脑,找到人事部的小杨,小杨介绍小张给小菜认识,让小张帮着装电脑,这个时候小菜已经认识了小杨和小张两个人。小张临时有事被叫走了,小菜有找到小杨,小杨有介绍小李给小菜认识,让小李帮小菜装电脑。这个时候小菜为了装电脑这件事已经认识了小杨、小张、小李,用OO的思想来说就是小菜类已经和小杨、小张、小李类耦合了,有关系了,受到影响的因素就多了。
其实我们仔细分析这个问题,是因为公司的管理制度造成的,我们可以说是程序设计不好导致的。如果制度是这样的,小菜装电脑这件事只需找到小杨,小杨打电话给IT部门,告诉IT部门有新同事要装电脑,你们指派一个人来负责整个事情。也就是说小菜是一个类,小杨是一个类,IT部门就是一个接口或抽象类,小李和小张都继承或实现整个抽象。小菜只需要找到小杨即可,不需要再跟IT部门的什么小张、小李有关系。
迪米特法则的根本思想是强调类之间的松耦合,减少了类之间的不必要依赖。
定义
迪米特法则(也叫最少知道原则):如果两个类不必直接通信,那么这两个类就不应当发生直接的互相作用。如果其中一个类需要调用另一个类中的方法,可以通过第三者转发这个调用。简单的说就是一个类应该保持对其它类最少的了解。怎么理解迪米特法则呢,就像书中举的例子,小菜需要安装电脑,找到人事部的小杨,小杨介绍小张给小菜认识,让小张帮着装电脑,这个时候小菜已经认识了小杨和小张两个人。小张临时有事被叫走了,小菜有找到小杨,小杨有介绍小李给小菜认识,让小李帮小菜装电脑。这个时候小菜为了装电脑这件事已经认识了小杨、小张、小李,用OO的思想来说就是小菜类已经和小杨、小张、小李类耦合了,有关系了,受到影响的因素就多了。
其实我们仔细分析这个问题,是因为公司的管理制度造成的,我们可以说是程序设计不好导致的。如果制度是这样的,小菜装电脑这件事只需找到小杨,小杨打电话给IT部门,告诉IT部门有新同事要装电脑,你们指派一个人来负责整个事情。也就是说小菜是一个类,小杨是一个类,IT部门就是一个接口或抽象类,小李和小张都继承或实现整个抽象。小菜只需要找到小杨即可,不需要再跟IT部门的什么小张、小李有关系。
要点
迪米特法则首先强调的是每个类应当尽量降低成员的访问权限,将负责的业务逻辑封装好,需要向外提供调用的设置成public,不需要的设置成private。迪米特法则的根本思想是强调类之间的松耦合,减少了类之间的不必要依赖。
相关文章推荐
- 监控zabbix自定义OID
- ubuntu14.04 ldap服务器安装和配置
- 树和森林的遍历
- Docker--image分析
- CSS中表示cellpadding和cellspacing的方法
- Xib添加关联
- mysql笔记
- 提高PHP编程效率
- .net Global.asax文件使用
- OpenCV 2 Computer Vision Application Programming Cookbook读书笔记
- Android开发之5.0特性深入理解(二)
- android控制板
- secureCRT学习总结
- 如何选择合适的PHP开发框架
- linux常用命令与技巧(不断添加与更新)
- Qt 飞机仪表显示
- UVa 11468 Substring
- 酱爆鸡丁
- 知乎UWP 预览
- mvcs项目搭建