Tal*_*ner 12 c# single-responsibility-principle solid-principles
如问题所示,
由于我们使用像IsNullOrEmpty或IsNullOrWhiteSpace这样的字符串函数作为函数显示的名称,这些函数执行多个作业,是不是违反了SRP?
相反,它不应该是string.isValid(Enum typeofValidation)而不是使用策略模式来选择正确的策略进行验证.
或者在实用程序类或静态类中违反SRP是完全可以的.
小智 17
SRP说一个函数或类应该只有一个改变的理由.改变的理由是什么?更改的原因是请求更改的用户.因此,类或函数应该只有一个请求更改的用户.
现在,一个执行某些计算然后进行一些格式化的函数有两个不同的用户可以请求更改.一个会请求更改计算,另一个会请求更改格式.由于这些用户有不同的需求并会提出不同的要求,我们希望他们能够通过不同的功能提供服务.
IsNullOrEmpty(String)不太可能为两个不同的用户提供服务.关心null的用户可能是关心空的用户,因此isNullOrEmpty不会违反SRP.