如果我使用BLL我还应该访问DAL吗?

时间:2012-04-15 14:21:26

标签: c# data-access-layer n-tier-architecture bll

我想创建具有存储库模式的n层体系结构。我想知道通过BLL层重复所有调用然后只通过BLL访问数据是否有意义?或者我可以通过DAL直接访问某些内容,还可以通过BLL访问某些内容?

1 个答案:

答案 0 :(得分:1)

IMO为了它而复制是没有意义的 (尽管每种方法都有其优点和缺点,但本身并没有什么总是错误或好的)

通常虽然数据层处理例如(简化的)一些“粒度”数据,这些数据与表格完全匹配等。

虽然您的业务层可以将其结合起来,并且更多地围绕“逻辑”和您的逻辑模型(然后是数据模型和数据)。

如果您发现自己在商务层中拥有DAL的精确副本,那么您很可能会错过一点点。有些事情可能需要重组,抛弃或简化。

或者例如问自己如果 - 如果你想要,例如将DAL替换为使用不同类型的存储(不同的组织或任何需要您更改数据/ DAL操作的方式) - 您的BLL将如何显示?相同?您的业​​务层不应该“跟踪数据” - 它应该有自己的规则,更多关于域的逻辑,您正在做的事情。虽然数据应该与数据有关。

因此,简而言之,问题主要在于您如何设计系统 - 如果您充分利用业务层(通常除非相对简单或者您决定采用完全不同的架构,否则应该使用它),然后使用它,如果不是没有必要复制。

希望这会有所帮助。