代码之家  ›  专栏  ›  技术社区  ›  rafek

在程序集上挂起度量值

  •  2
  • rafek  · 技术社区  · 15 年前

    你想保留 与主序列的距离 每个组件都低?只包含业务对象定义的程序集怎么样?能让他们远离吗 疼痛区 ?此类程序集中的类型通常由其他程序集中使用,并且相当具体。如何处理这种情况?

    1 回复  |  直到 15 年前
        1
  •  5
  •   Chris Melinn    15 年前

    我认为保持“与主序列的距离”较低的目标是基于 Law of Demeter . 遵循这个规则有助于使代码更容易理解和单元测试。通过使用仅仅是数据容器的业务对象,您将暴露比可能需要的更多的状态,并破坏封装规则。

    然而,作为福勒 points out in this article “虽然方法链是一种气味,但与转发方法导致中间人对象膨胀相反的问题也是一种气味。(我一直觉得如果称之为德米特的建议,我会更适应德米特的法律。)

    我认为,如果您只想传递对象包含的“什么”,例如如何将这些基本业务对象用作数据传输对象,那么这些基本业务对象的价值可能非常有用。然而,区分真正的业务对象和空数据传输对象可能很重要。我假设真实的业务对象还应该包含行为以及它们封装的数据。