我有一个n层应用程序,其中包括数据访问层(DAL)和业务逻辑层(BLL)。我在用来填充我的对象的DAL中使用SQL查询和存储过程。DAL中的默认排序顺序是否违反了关注点分离
因此,这里是我的问题:
是否在我的SQL查询的ORDER BY
条款违反了关注点分离?
一方面,似乎排序逻辑属于业务层,因为它是我们的业务规则,它决定了我们为什么要按特定顺序显示数据。另外,我们可能希望以多种方式显示相同的数据。此外,我的数据访问代码不应该不知道如何显示的问题?
另一方面,数据库通常比应用程序代码更有效地对数据进行排序,所以出于性能方面的考虑,在BLL中进行排序时会有ORDER BY子句的激励。另外,我不确定是否在DAL中指定默认排序顺序确实违反了关注点分离。记录必须以某种方式从数据库中提取出来。为什么不根据最常见的情况对它们进行分类?在我们需要与默认不同的排序顺序的情况下,我们可以通过BLL中的某种方法进行排序。
不知道我是否会反对那种存在,但个人而言,我认为我的业务逻辑依赖于来自我的访问层的排序会感到不舒服。 –
@ChadSchouggins不知道我关注。你的意思是你不相信谁会在DAL中包含排序逻辑? –