1、背景

在图书馆借书。刚開始的时候,直接跑到对应的楼层去,到里面去转,去找要借的书,在里面溜达半天才干找到;后来知道图书馆有一个电脑查询处。然后直接在电脑上输入想要借的书,电脑就会显示你想要借的书的信息。还有所在的相关楼层存放的相关位置。

2、定义

迪米特法则(Law of Demeter)又叫作最少知识原则(LKP,Least Knowledge Principle),就是说一个对象应当对其它对象有尽可能少的了解,类与类之间的了解的越多,关系越密切,耦合度越大,当一个类发生改变时。还有一个类也可能发生变化。

  核心思想:最少依赖

详细体现:

  • 类内部应该高内聚,设置对应的权限。有选择的暴露方法,这就是封装的奥秘。

  • 类的依赖关系尽量降低,保持简单和独立。降低耦合。

有些东西,能够适当的知道,知道的太多对你不好。

关系越复杂,人越不敢接近你。

要达到非常高的内修养。才干有非常好的表现。

3、设计模式中的详细应用

1)、门面(外观)模式

假设一个子系统内部的对象构成自己的朋友圈,而子系统外部 对象都属于陌生人的话,那么子系统外部的对象与内部的对象就不应当直接通信,而应当通过一个两方都认可的朋友。也就是门面对象进行通信,这就导致了门面模式。

2)、中介者模式

这里一些对象形成一个中等规模的朋友圈。而圈内非常多的对象都有排列组合般的交互作用。

这时,能够通过创造一个大家共同拥有的朋友对象,然后大家都通过这个朋友对象发生相互作用。而将相互之间的直接相互作用省略掉,这就导致了中介者模式。

3、规则建议

在类的划分上。应当创建弱耦合的类,类与类之间的耦合越弱,就越有利于实现可复用的目标。

在类的结构设计上。每一个类都应该减少成员的訪问权限。

在类的设计上,仅仅要有可能,一个类应当设计成不变的类。

在对其它类的应用上。一个对象对其它类的对象的应用应该降到最低。

尽量限制局部变量的有效范围。

最新文章

  1. 【转载】mysql慢查询
  2. Yii2 使用a标签发送post请求
  3. Python SQLAlchemy --1
  4. PHPstudy 无法启动Apache
  5. poj4052
  6. [整理]通过AngularJS directive对bootstrap日期控件的的简单包装
  7. 安装配置OPENCMS的Replication cluster(从)详细过程
  8. Windows Search Service
  9. redis学习一
  10. BZOJ 1854: [Scoi2010]游戏 [连通分量 | 并查集 | 二分图匹配]
  11. Unity引擎与C#脚本简介
  12. Android仅2步实现 滚粗 汉堡导航栏效果~ 全新底部导航交互(滑动隐藏)
  13. emacs技巧
  14. Velocity日期格式化
  15. 在node环境使用axios发送文件
  16. oracle utl_http 访问https类型
  17. mysql 开发进阶篇系列 40 mysql日志之二进制日志下以及查询日志
  18. bzoj3277 串 (后缀数组+二分答案+ST表)
  19. UDP丢包问题
  20. 微信开发工具包,jar包

热门文章

  1. 链表k个节点反向
  2. 【LeetCode练习题】Candy
  3. ubuntu登陆后一闪回到登陆界面
  4. 在SQL Server中如何快速查找DBCC命令和语法?
  5. H面试程序(12): 输出字符串中第一个只出现一次的字母
  6. poj2392 Space Elevator(多重背包)
  7. PHP高级特性基础
  8. MVC 传参
  9. poj3254Corn Fields题解
  10. C语言常用的库文件(头文件、函数库)