十一:迪米特法则

本文介绍了迪米特法则,即最少知识原则,旨在减少对象间的耦合度。文章详细阐述了该法则的具体应用,包括狭义和广义的定义,并探讨了如何在类设计中遵循这一原则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

迪米特法则又叫最少知识原则,就是说,一个对象应当对其他对象有尽可能少的了解.

一:狭义的迪米特法则
如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用,如果其中的一个类SomeOne需要调用另一个类Stranger的某一个方法的话,可以通过第三者Friend转发这个这个调用.这个第三者可以是以参量形式传入到当前对象方法中的对象,当前对象实例变量直接引用的对象....与依赖倒转原则互补:引入一个抽象类型引用"抽象陌生人"对象,使某人依赖于"抽象陌生人",就是把"抽象陌生人"变成朋友。

二:迪米特法则与设计模式
A:门面模式
如果一个子系统内部的对象构成自己的"朋友圈",而子系统外部的对象都属于"陌生人"的话,那么子系统外部的对象与内部的对象就不应当直接通信,而应当通过一个双方都认可的朋友,也就是"门面"对象进行通信,这就导致了门面模式.
B:调停者模式
如果有很多个类,它们之间相互调用,这时可以创造出一个大家共用的朋友,然后大家都通过这个朋友对象发生作用,而相互之间的直接相互作用省略掉,这就导致了调停都模式.

三:广义迪米特法则在类的设计上的体现
(1)优先考虑将一个类设置成不变类
(2)尽量降低一个类的访问权限
(3)谨慎使用Serializable.
(4)尽量降低成员的访问权限。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值