`

十一:迪米特法则

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

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

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

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

相关推荐

Global site tag (gtag.js) - Google Analytics