博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计原则-迪米特法则
阅读量:7224 次
发布时间:2019-06-29

本文共 865 字,大约阅读时间需要 2 分钟。

hot3.png

迪米特法则: 一个软件实体应当尽可能少地与其它实体发生相互作用.

如果一个系统符合迪米特法则, 那么当其中某一个模块发生修改时, 就会尽量少地影响其他模块, 扩展会相对容易, 这是对软件实体之间通信的限制, 迪米特法则要求限制软件实体之间通信的宽度和深度. 迪米特法则可降低系统的耦合度, 使类与类之间保持松散的耦合关系.

迪米特法则还有几种定义形式, 包括: 不要和"陌生人"说话, 只与你的直接朋友通信等, 在迪米特法则中, 对于一个对象他的朋友包括以下几类:

  • 当前对象本身.
  • 以参数形式传入当前对象/方法中的对象.
  • 当前对象的成员对象.
  • 如果当前对象的成员对象是一个集合, 那么集合中的元素也都是朋友.
  • 当前对象所创建的对象.

任何一个对象, 在满足上面的条件之一, 就是当前对象的朋友, 否则就是陌生人. 在应用迪米特法则时, 一个对象只能与直接朋友发生交互, 不要和陌生人发生直接交互, 这丫很难过做可以降低系统的耦合度, 一个对象的改变不会给太多其他度夏宁带来影响.

迪米特法则要求我们在设计系统时候, **应该尽量减少系统之间的交互, 如果两个对象之间不必彼此直接通信, 那么这两个对象就不应该发生任何的直接的相互作用, 如果其中一个对象需要调用另一个对象的某一个方法, 可以通过第三者转发这个调用. **简言之. 就是通过引入一个合理的第三者来降低现有对象之间的耦合度.

在将迪米特法则运用到系统设计中时候, 要注意以下几点: 在类的划分上, 应当尽量创建松耦合的类, 类之间的耦合度越低, 就越有利于复用, 一个处于松耦合的类一旦被修改, 不会对关联的类造成太大的波及; 子啊类的结构设计上, 每一个类都应该尽量降低其成员变量和成员函数的访问权限; 在类的设计上, 只要有可能, 一个类型应当被设计成不变类; 在对其它类的引用上, 一个对象对其它对象的引用应当降到最低.

更多详情请参考原文:

Reference:

转载于:https://my.oschina.net/whforever/blog/787191

你可能感兴趣的文章
php获取本周周一、周日时间,上周周一、周日时间,本月第一天,本月最后一天,上个月第一天,最后一天时间...
查看>>
poj----2155 Matrix(二维树状数组第二类)
查看>>
学习VC MFC开发必须了解的常用宏和指令
查看>>
第6章 适配器模式(Adapter Pattern)
查看>>
我的Hook学习笔记
查看>>
C/C++产生随机数
查看>>
C#打包制作安装程序过程全记录
查看>>
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)...
查看>>
Oracle10g 回收站及彻底删除table : drop table xx purge
查看>>
swift 类型.
查看>>
Python:线程指南
查看>>
R语言学习笔记
查看>>
iOS开发数据库篇—SQLite的应用
查看>>
java中的容器解释
查看>>
[转] 网页常用字体
查看>>
Rails NameError uninitialized constant class solution
查看>>
MVC - 13.验证
查看>>
[CSS3] Parent relative and child absoulte
查看>>
Apache Spark技术实战之2 -- PackratParsers实例
查看>>
今日遇到一问题,甚是定奇怪,我将文件名称改为小写,系统便能载入上,但为何这样呢?...
查看>>