NDepend程序集的指标

raf*_*fek 2 .net ndepend code-metrics

您是否尝试将每个组件的主序距离保持在低位?那些只包含Business Objects定义的程序集呢?是否有可能让他们远离疼痛区?这种组件中的类型通常由其他组件使用,而且非常具体.如何处理这种情况?

Chr*_*inn 5

我认为{保持与主序的距离较低}的目标是基于得墨忒耳定律.遵循此规则有助于使代码更易于理解,更易于单元测试.通过使用仅仅是数据容器的Business Objects,您可能会暴露出更多可能需要的状态并破坏封装规则.

然而,正如福勒在这篇文章中所指出的那样,"虽然方法链是一种气味,但是中间人物体的相反问题是使用转发方法臃肿也是一种气味.(我一直觉得我对法律更加满意Demeter如果被称为Demeter的建议.)"

我认为,如果您只想传递对象包含的"内容",例如它们如何用作数据传输对象,那么这些基本Business Objects的价值会很有用.但是,从空数据传输对象中删除真正的Business Objects可能很重要.我认为真正的Business Objects也应该包含行为以及它们封装的数据.