德米特定律是开发软件的设计指南,特别是在面向对象的编程中. 德米特定律旨在减少对象之间的依赖性,使系统更加模块化,更容易维护,更不易发生错误.

理解地铁法

通常被概括为"只与你的近亲交谈"的Demeter定律鼓励对象只与其直接合作者沟通. 这意味着对象只应引用以下方法: .

  • 自己来
  • 以参数表示的物体
  • 它创建的对象
  • 它的直接组件对象

通过遵守这一规则,对象的依赖性被降到最低,减少了紧接合的风险,使代码更容易更改或扩展.

执行《地铁法》

执行《地铁法》涉及设计无法深入到对象图中的类别和方法。

order.getCustome (. getAddress (. getCity () ] 命令.getCustome (.

最好提供一种直接返回必要信息的方法:

order.getCustomecity () ] 命令. getCustomecity () ] 命令.

重构提示

  • 将复杂的链条封装在类本身内.
  • 创建仅披露必要数据的方法。
  • 使用像Facade或Interactor这样的设计模式来减少依赖性.
  • 保持各班集中负责单一责任.

遵守《地铁法》的好处

遵守这项法律可提供若干好处:

  • 减少各班之间的联动。
  • 增强代码可读性和可维护性.
  • 通过隔离对象使单位测试更加容易.
  • 方便代码的重构和扩展.

总之,在面向对象的设计中实施Demeter定律,可以促进更清洁,更模块化的代码,它鼓励开发者仔细思考对象相互作用和依赖性,从而导致更强大的软件系统.