在System.Data.Entity名称空间中,有DbFunctions类。它拥有近100个处理字符串操作、DateTime计算和统计函数的函数。上面有很多SRP的问题,所以觉得这是合适的论坛。Wikipedia将SRP定义如下:
单一责任原则规定,每个模块或类都应该对软件提供的功能的单个部分负有责任,这种责任应该完全由类封装。它的所有服务都应与这一责任紧密结合。
在我看来,DbFunctions是个违反者。
在定义类的用途时,许多人主张计算定义中使用的"ands“的数量。不止一个,你可能违反了SRP。据我统计,DbFunctions至少有3家。我对SRP的理解是有缺陷的还是过于字面的?我知道总是有边缘情况,但在我看来,这似乎违反了SRP。这当然不会削弱这门课的超有用性。
这个类符合SRP吗?
发布于 2016-02-19 19:23:50
我不认为这违反了SRP。下面是MSDN中给出的定义,其中
提供公共语言运行库(CLR)方法,这些方法公开用于DbContext或ObjectContext LINQ实体查询的EDM规范函数。
上述定义中的职责是将用于Linq的EDM规范函数公开到SQL查询中,这是单一的责任。
https://stackoverflow.com/questions/35513161
复制相似问题