【问题标题】:why is the following code violating The Law of Demeter?为什么以下代码违反了得墨忒耳法则?
【发布时间】:2015-09-13 15:57:05
【问题描述】:
final String outputDir = ctxt.getOptions().getScratchDir().getAbsolutePath();

Demeter 法则说 C 类的方法 f 应该只调用这些方法:

  • C
  • 由 f 创建的对象
  • 作为参数传递给 f 的对象
  • 保存在 C 的实例变量中的对象

【问题讨论】:

标签: coding-style


【解决方案1】:

在 Options 类的实例上调用 getScratchDir() 是违规的。

现在,为了改进架构,我们需要更多地了解代码试图做什么。方法可以移到 CTxt 类中吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多