【问题标题】:Cohesion in methods - what about calculations and helper functions?方法的凝聚力——计算和辅助函数呢?
【发布时间】:2016-05-15 07:43:37
【问题描述】:

内聚度量背后的假设是方法是相关的 如果它们在相同的类级变量上工作。方法不相关 如果他们完全处理不同的变量。在一个有凝聚力的课堂上, 方法使用相同的变量集。在没有凝聚力的班级中, 有一些方法适用于不同的数据。

在度量标准中,共享对实例变量、字段的访问权限的方法对的数量从不共享的对中减去。

但是那些简单地执行计算并返回值的方法呢?我有很多,但由于它们不共享任何实例变量,因此建议将它们分开,这对我来说没有意义。

【问题讨论】:

    标签: optimization metrics cohesion


    【解决方案1】:

    但是那些简单地执行计算并返回值的方法呢?

    您所指的这类方法称为实用程序(又名帮助程序)方法,从 OO 设计的角度来看,通常被认为是代码异味。以下文章详细阐述了实用方法的主题,并提供了一个带有重构替代方案的说明性示例:http://www.yegor256.com/2014/05/05/oop-alternative-to-utility-classes.html

    您的静态代码分析工具可能无法识别实用程序类(仅包含实用程序方法的类),并且会为您提供与类中放错方法相同的提示。假设您已经根据某些标准对方法进行了分组,将实用程序类的每个方法移到单独的类中没有多大意义。

    我对您的建议是重新审视您的设计,并尽量避免使用实用方法。 如果由于某种原因这不可行,请保留您原来的实用方法分组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-07-21
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 2016-07-17
      • 1970-01-01
      • 2019-08-04
      相关资源
      最近更新 更多