设计模式 之 迪米特法则

本文介绍了设计模式中的迪米特法则,又称最少知道原则,旨在降低类之间的耦合度。通过举例说明,阐述了如何避免在方法中实例化陌生类并直接通信,建议通过直接的朋友进行交互,以提升代码的可维护性。同时,文章提醒在设计时应尽量降低成员的访问权限,提供必要的公共接口。
摘要由CSDN通过智能技术生成

设计模式系列文章:
设计模式 之 设计原则(1) 单一职责原则 接口隔离原则 依赖倒转原则
面向对象 之 不能不知道的类间关系(上)泛化、实现、依赖 C++与Java
面向对象 之 不能不知道的类间关系(下)关联、聚合、组合 C++与Java
JAVA单例模式分析及其实现:饿汉式、懒汉式、双重检查、静态内部类


迪米特法则

迪米特法则,又叫做最少知道原则。

我们先来看一下这个法则的定义:

迪米特法则:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。
    	如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

读起来朗朗上口,读完后一脸懵逼。单单从这个定义来看确实很难 get 到这个法则的精髓。

那就不妨先来看一下,迪米特法则等另一种更通俗的表述方式:只于直接的朋友通信
直接的朋友指的是在类中的作为成员变量、方法参数或者方法返回值的类。而在方法内部出现的类就不是直接的朋友。换句话说,应该避免在一个方法体中实例化陌生类的成员并使用它的方法。
那么当需要使用到这个陌生类的方法的时候,应该让它以直接的朋友身份出现或者通过直接的朋友调用这个方法。

我们来举一个粟子:
在周朝分封制的背景下,社会等级有着严格的划分,每个阶级只与紧挨着它的上面和下面的阶级产生联系。跨级的管理是不被允许的。引用度娘上找到的的图片:
在这里插入图片描述
这样的背景可以很好地体现迪米特法则,让我们从士的角度来看,对于使来说,“直接的朋友”下级 平民,士是不可以直接命令奴隶的。如果一个士希望完成自己土地上庄稼的收割,而收割这个行为只能由奴隶来完成。那么士直接使用奴隶来完成收割是不合理的,违背了迪米特法则。

违背迪米特法则的设计:

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值