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

Mor*_*ten 2 tdd single-responsibility-principle solid-principles

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

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

cuo*_*gle 5

实用程序类被视为反模式:

  1. 如您所述违反SRP,因为它通常需要多个职责.
  2. 它们中的大多数是静态类,它不利于测试设计能力而且不能被嘲笑.
  3. 名称本身毫无意义,它们通常被命名为Helper,Util,Utility或类似名称.

纠正:

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