例子

假设老板给项目组长下达一个任务,让其去查询课程的数量

代码

public class Course {}
public class TeamLeader {public void checkNumberOfCourses(List<Course> courseList) {System.out.println("课程的数量为:" + courseList.size());}
}
public class Boss {public void commandCheckNumber(TeamLeader teamLeader) {List<Course> courseList = new ArrayList<Course>();for (int i = 0; i < 20; i++) {courseList.add(new Course());}teamLeader.checkNumberOfCourses(courseList);}
}

测试

public class Test {public static void main(String[] args) {Boss boss = new Boss();TeamLeader teamLeader = new TeamLeader();boss.commandCheckNumber(teamLeader);}
}



这部分代码是不符合迪米特原则的,在Boss类中,成员变量,方法的返回值,形参均为“朋友”,而方法内部的局部变量不是朋友,迪米特原则就是强调只和朋友说话,不和陌生人说话,在上述代码中Boss应该只需要项目组长TeamLeader汇报给他一个结果就行了,中间有关于Course的部分不需要知道,修改之后的代码如下:
其他类均不变,只改变Boss类和TeamLeader

public class TeamLeader {public void checkNumberOfCourses() {List<Course> courseList = new ArrayList<Course>();for (int i = 0; i < 20; i++) {courseList.add(new Course());}System.out.println("课程的数量为:" + courseList.size());}
}
public class Boss {public void commandCheckNumber(TeamLeader teamLeader) {teamLeader.checkNumberOfCourses();}
}

设计模式-设计原则之迪米特原则相关推荐

  1. 软件设计原则之接口隔离原则、合成复用原则、迪米特原则

    系列文章目录 软件设计原则之单一职责原则.开闭原则 软件设计原则之里氏替换原则.依赖倒置原则 软件设计原则之接口隔离原则.合成复用原则.迪米特原则 文章目录 系列文章目录 一.接口隔离原则 什么是接口 ...

  2. 设计原则之迪米特原则

    迪米特原则 Law of Demeter, LOD 迪米特原则定义 迪米特原则也叫最小知识原则(The Least Knowledge Principle).即,每个模块只应该了解那些与它关系密切的模 ...

  3. 【学习笔记】慕课网—Java设计模式精讲 第3章 软件设计七大原则-3-6 迪米特原则(最少知道原则)...

    /** * 软件设计七大原则-迪米特原则 学习笔记 * @author cnRicky * @date 2018.11.10 */ 迪米特原则(最少知道原则) 一个对象应该对其他对象保持最少的了解.又 ...

  4. 六大设计原则之迪米特原则

    迪米特原则的定义 迪米特原则(Law of Demeter,LoD),也叫最少知识原则(Low knowledge Principle,LKP): 一个对象应该对其他对象有最少的了解. 通俗的讲:一个 ...

  5. C# 设计原则 之 迪米特 原则

    迪米特法则又叫作最少知道原则,一般设计用于 对类内部 进行 合适的封装. 下面举例: 人关闭电脑的 示例 1.1没有实现 迪米特原则的 代码 namespace 迪米特 {internal class ...

  6. 设计模式:六大原则之迪米特原则

    迪米特原则 基本介绍 定义:迪米特法则也称为最少知识原则,即一个对象应该对其他对象有最少的了解.通俗地说,一个类应该对自己需要耦合或调用的类知道的最少,被调用或耦合的类的内部是如何复杂都和我没有关系. ...

  7. 面向对象的六大原则之 —— 迪米特原则

    学习了何红辉.关爱民写的<Android设计模式>,对于面向对象的六大原则有进一步的理解,特此根据自己的理解记录总结一下 什么是迪米特原则 也称为最少知识原则,意思就是一个对象应该对其他对 ...

  8. 程序设计原则之迪米特原则

    一.什么是迪米特原则 迪米特原则也叫最小知道原则,即对其他的类尽量保持最少知道.只关心自己的直接朋友类,而不关心其他的类. 直接朋友类:出现在自己的域中.方法入参中.方法出参中的类叫直接朋友类:那些在 ...

  9. 设计模式(6)之七大原则之迪米特原则

    一.定义 迪米特法则(Law of Demeter,LoD)又叫作最少知识原则(Least Knowledge Principle,LKP),产生于 1987 年美国东北大学(Northeastern ...

最新文章

  1. 硬件信息统计_读取输出Excel_显示进度
  2. android gc 回调,android - 使用Picasso通过Bitmap获取回调
  3. 开源,免费和跨平台 - MVP ComCamp 2015 KEYNOTE
  4. 微软职位内部推荐-SW Engineer II for Skype
  5. 简单PHP留言板之四 —— 添加留言
  6. 逛街游戏html5,HTML5购物商城app源码
  7. dhtmlxGantt 版本比较-Crack
  8. 2021年全国大学生计算机能力挑战赛(Java)决赛试题代码(外加部分试题)
  9. 服务器同时连接局域网和外网
  10. 关于nginx配置负载均衡,nginx.conf配置文件正确,一直跳出nginx欢迎界面
  11. BugKu 你必须让他停下来
  12. 学python入门基础教程[推荐]
  13. FCoin爆雷,大咖答主教你如何挽回损失 | 一周问答热议
  14. 蓝桥杯Java B组2015年真题
  15. 2000-2018年融资约束SA指数计算命令和数据
  16. 计算机考研复试-离散数学
  17. MATLAB循环调用函数使用并行池指南(带非官方实际例子)
  18. 月黑风高夜!把室友的STM32换成了GD32
  19. 两级式光伏并网逆变器,DCDC环节采用boost电路,通过增量电导法实现光伏最大功率跟踪MPPT
  20. 语音转文字—文字转语音—科大讯飞SDK——LabVIEW实现

热门文章

  1. 记录谷粒学院的一些问题--------------chapter1
  2. 推荐引擎 - Summary Analysis
  3. (网页)HTML小技巧的一些小技巧
  4. 开发常用下载地址收藏
  5. 人工智能的影响是大众还是小众,对我们的职业有什么影响?
  6. 深入了解电容(三):陶瓷电容MLCC
  7. Unity中的GUI编程
  8. 通过css实现单选按钮效果
  9. 详述 IntelliJ IDEA 遇到快捷键以及删除键不好使的解决方法
  10. 关于jupyer中,文件夹所在位置如何查询