设计原则之迪米特法则
迪米特法则(LOD):
要求一个对象应该对其他对象有最少的了解,所以迪米特法则又叫做最少知识原则。
意义: 迪米特法则的意义在于降低类之间的耦合。由于每个对象尽量减少对其他对象的了解,因此,很容易使得系统的功能模块功能独立,相互之间不存在(或很少有)依赖关系。
狭义的迪米特法则:
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一类的某一个方法的话,可以通过第三者转发这个调用。
如何做到一个对象应该对其他对象有最少的了解呢?
只和直接的朋友交流:出现在成员变量、方法的输入输出参数中的类就是直接的朋友。
减少对朋友的了解:尽量减少一个类对外暴露的方法。
案例:
使用迪米特法则
明星与经纪人的关系实例
明星由于全身心投入艺术,所以许多日常事务由经纪人负责处理,如和粉丝的见面会,和媒体公司的业务洽淡等。这里的经纪人是明星的朋友,而粉丝和媒体公司是陌生人,所以适合使用迪米特法则。
类图
明星类
/*** @Description: 明星类*/
public class Star {private String name;public Star(String name) {this.name = name;}public String getName() {return name;}
}
粉丝类
/*** @Description: 粉丝类*/
public class Fans {private String name;public String getName() {return name;}public Fans(String name) {this.name = name;}
}
媒体公司类
/*** @Description: 媒体公司类*/
public class Company {private String name;public String getName() {return name;}public Company(String name) {this.name = name;}
}
经纪人类(负责与粉丝,媒体公司接触)
/*** @Description: 经纪人类*/
public class Agent {private Star star;private Fans fans;private Company company;public void setStar(Star star) {this.star = star;}public void setFans(Fans fans) {this.fans = fans;}public void setCompany(Company company) {this.company = company;}//和粉丝见面的方法public void meeting() {System.out.println(star.getName() + "和粉丝" + fans.getName() + "见面");}//和媒体公司洽谈的方法public void business() {System.out.println(star.getName() + "和" + company.getName() + "洽谈");}
}
测试类
/***测试类*/
public class Client {public static void main(String[] args) {//创建经纪人类Agent agent = new Agent();//创建明星对象Star star = new Star("林青霞");agent.setStar(star);//创建粉丝对象Fans fans = new Fans("李四");agent.setFans(fans);//创建媒体公司对象Company company = new Company("黑马媒体公司");agent.setCompany(company);agent.meeting();//和粉丝见面agent.business();//和媒体公司洽谈业务}
}
测试结果
解释说明
这里经纪人负责与明星商量,与粉丝,媒体接触,然后才是明星与粉丝见面,与媒体公司会谈。明星尽量少的与粉丝,与媒体公司接触,这里就体现到了迪米特法则。
结束!!!!!!!
和她在一起我肯定很幸福啊,可她和我在一起她就不一定了。
设计原则之迪米特法则相关推荐
- 6大设计原则之迪米特法则
迪米特法则的定义 迪米特法则也称为最少知识原则,一个对象应该对其他对象有最少的了解. 通俗的讲,一个类应该对自己需要耦合或调用的类知道的最少,被调用类的内部是如何复杂都和我没关系,我就知道你的这些pu ...
- 【实验】软件设计原则,迪米特法则与开闭原则
(一)实验原理 1.迪米特法则:不要和"陌生人"说话.或只与你的直接朋友通信. 我们称出现成员变量.方法参数.方法返回值中的类为直接的朋友,而出现在局部变量中的类则不是直接的朋友. ...
- 设计原则之六——迪米特法则
以下七种设计原则是软件设计模式尽量遵循的原则,各种原则要求的侧重点不同. 开闭原则 是总纲,它告诉我们要对扩展开放,对修改关闭: 里氏替换原则 告诉我们不要破坏继承体系: 依赖倒置原则 告诉我们要面向 ...
- 六大设计原则之迪米特法则
定义:一个类和另一个类应该保持最小的了解 问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生变化时,对另一个类影响也越大. 解决方案:尽量降低类与类之间的耦合. //总公司员工 class E ...
- 设计原则之迪米特法则详解
一.迪米特法则定义 一个对象应当对其它对象有尽可能少的了解,也被成为最少知道原则. 意思就是一个类中只与与它有直接关联的类联系,出现在这个类的成员变量.方法的输入,方法参数的类被成为朋友类,其他无直接 ...
- java设计模式(7):软件设计原则之迪米特法则
迪米特法则又叫最少知识原则. 只和你的直接朋友交谈,不跟"陌生人"说话(Talk only to your immediate friends and not to strange ...
- 设计原则 单一职责原则、开放封闭原则、依赖倒置原则、里氏代换原则、迪米特法则
目录 1 单一职责原则 2 开放封闭原则 3 依赖倒置原则 4 里氏代换原则 5 迪米特法则 1 单一职责原则 比如:电脑内存坏了就应该更换内存,不应该更换CPU (内存负责内存.CPU负责CPU) ...
- 设计模式原则之迪米特法则
设计模式原则之迪米特法则 迪米特法则(Law of Demeter, LoD)的核心是一个软件实体应当尽可能少地与其他实体发生相互作用. 如果一个系统符合迪米特法则,那么当其中某一个模块发生修改时,就 ...
- 深入浅出设计模式原则之迪米特法则(LoD)
下面以"明星与经纪人的关系实例"为例来说明迪米特法则原则的应用(工程源码) 分析:明星由于全身心投入艺术,所以许多日常事务由经纪人负责处理,如与粉丝的见面会,与媒体公司的业务洽淡等 ...
最新文章
- putchar函数的基本格式
- linux提取第一列且删除第一行(awk函数)
- [转]SQL2005后的ROW_NUMBER()函数的应用
- 如何写一个能被手机打开的C语言小程序,如何用C语言中一些简单的语句做一个小程序,能够输入一个字符就会弹出一句话...
- 13寸笔记本电脑尺寸_2020笔记本电脑推荐(华为篇)
- 传惠普下周公布webOS平台最终命运
- 【TensorFlow篇】--Tensorflow框架实现SoftMax模型识别手写数字集
- GNU make manual 翻译(四十三)
- php添加导航和删除导航,新增/修改/删除ECSHOP后台左侧导航菜单
- c#进销存(1):需求分析
- 代码随想录程序员求职攻略完整pdf开放下载
- 小榕密码管家xp 绿色
- 大时代势不可挡_会使您势不可挡的程序员的行为
- Markdown语法介绍(详细)
- 二维坐标系,求解一个点旋转到另外一个点的映射矩阵
- 企业项目实战k8s篇(二十)持续集成与持续交付
- BiliBili系列(二):个人历史数据爬取与分析
- 前端工程师需要学习ps 吗_【百度前端工程师面试】前端开发技术要会PS-看准网...
- 需求、需求分析、设计 思想
- 排名 教材 数字电子技术_《数字电子技术基础》高等院校专业教材.pdf