设计法则 迪米特法则:如果两个类不必彼此直接通信,例如什么情况?
浏览量:2202
时间:2021-03-16 13:20:07
作者:admin
迪米特法则:如果两个类不必彼此直接通信,例如什么情况?
在德米特定律的狭义意义上,如果两个类不必直接相互通信,那么这两个类就不应该直接交互。如果其中一个类需要调用另一个类的方法,可以通过第三方转发调用。朋友圈的“朋友”条件:1)当前对象本身(this)2)以参数形式传入当前对象方法的对象3)当前对象的实例变量直接引用的对象4)如果当前对象的实例变量是聚合,那么聚合中的所有元素都是朋友5)如果当前对象创建的任何对象满足上述要求,其中一个条件是当前对象是“朋友”;否则,它是“陌生人”。狭义的德米特定律:系统中产生了大量的小方法。这些方法只是间接调用,与系统的业务逻辑无关。在类之间遵循Dimiter定律将简化系统的本地设计,因为每个部分都不会与远程对象直接相关。但是,这也会降低系统不同模块之间的通信效率,使系统不同模块之间的协调变得困难。表面模型和中介模型实际上是迪米特定律的应用。广义迪米特定律在类设计中的体现:应优先考虑将类设置为不变类。最小化对类的访问。小心使用serializable。尽量减少对成员的访问。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。