单一责任原则(SRP)是否允许实用程序类

时间:2012-10-15 07:41:38

标签: tdd solid-principles single-responsibility-principle

我刚刚回答了一个与SRP有关的问题让我想到:SRP如何站在实用工具类上?

根据定义,实用程序类往往会做很多事情。我可以看到单个接入点上的gatering相关实用程序是如何有用的。按照SRP标准,您无法在一个类中实现实用程序。这是否意味着实用程序类是禁止的,或者SRP是否允许它,如果它只是多个类的外观,每个类都遵循SRP?

1 个答案:

答案 0 :(得分:6)

实用程序类被视为反模式

  1. 如您所述违反SRP,因为它通常需要承担多项责任。
  2. 大多数都是静态类,它对测试设计能力不利,不能被嘲笑。
  3. 名称本身毫无意义,它们通常被命名为 Helper Util Utility 或类似名称。
  4. 要更正:

    将您的实用程序类扩展为具有有意义名称的更小的非静态类,每个类只承担一个责任。