当前位置: 首页 > news >正文

设计模式-七个基本原则之一-迪米特法则 + 案例

迪米特法则:(LoD) 面向对象七个基本原则之一

  • 只与直接的朋友通信:对象应只与自己直接关联的对象通信,例如:方法参数、返回值、创建的对象。
  • 避免“链式调用”:尽量避免通过多个对象链进行调用。例如,a.getB().getC().doSomething()这种形式不符合迪米特法则。
      目的
  • 降低耦合:通过减少对象之间的依赖关系,提高系统的可维护性和可扩展性。
  • 提高灵活性:使得对象的内部实现可以独立变化,而不影响外部使用者。
  • 对象之间越少知道越好。

        例如,汽车有三个类 Car Engine  Driver

        这三个类里面Car与Engine交互是符合迪米特法则的

        Driver如果与Car的内部结构Engine交互则视为增加了耦合度,不符合迪米特法则

http://www.lryc.cn/news/484045.html

相关文章:

  • 【数学二】线性代数-二次型
  • 320页PDF | 集团IT蓝图总体规划报告-德勤(限免下载)
  • HTB:Sea[WriteUP]
  • Java 网络编程(一)—— UDP数据报套接字编程
  • ECharts图表图例8
  • Redis中的线程模型
  • [产品管理-77]:技术人需要了解的常见概念:科学、技术、技能、产品、市场、商业模式、运营
  • 鼠标点击(一)与3D视口窗口的交互
  • 线程-2-线程概念与控制
  • TortoiseSVN提示服务器凭证检核错误:站点名称不符
  • Diffusion Policy——斯坦福机器人UMI所用的扩散策略:从原理到其编码实现(含Diff-Control、ControlNet详解)
  • (动画版)排序算法 -希尔排序
  • delphi fmx android 自动更新(二)
  • 蓝队知识浅谈(中)
  • 解决vue3+ts打包项目时会生成map文件
  • webpack指南
  • 关于QUERY_ALL_PACKAGES权限导致Google下架apk
  • 优化时钟网络之时钟抖动
  • C++《继承》
  • 微澜:用 OceanBase 搭建基于知识图谱的实时资讯流的应用实践
  • 【LeetCode】【算法】538. 把二叉搜索树转换为累加树
  • YoloV8改进策略:注意力改进|EPSANet,卷积神经网络上的高效金字塔挤压注意力块|即插即用|代码+改进方法
  • Nextflow最佳实践:如何在云上高效处理大规模数据集
  • 数据结构:顺序表(动态顺序表)
  • springboot040社区医院信息平台
  • windows下QT5.12.11使用MSVC编译器编译mysql驱动并使用详解
  • c++写一个死锁并且自己解锁
  • JavaScript方法修改 input type=file 样式
  • 群控系统服务端开发模式-应用开发-前端个人信息功能
  • 【jupyter】文件路径的更改