我想创建具有存储库模式的n层体系结构。我想知道通过BLL层重复所有调用然后只通过BLL访问数据是否有意义?或者我可以通过DAL直接访问某些内容,还可以通过BLL访问某些内容?
答案 0 :(得分:1)
IMO为了它而复制是没有意义的 (尽管每种方法都有其优点和缺点,但本身并没有什么总是错误或好的)
通常虽然数据层处理例如(简化的)一些“粒度”数据,这些数据与表格完全匹配等。
虽然您的业务层可以将其结合起来,并且更多地围绕“逻辑”和您的逻辑模型(然后是数据模型和数据)。
如果您发现自己在商务层中拥有DAL的精确副本,那么您很可能会错过一点点。有些事情可能需要重组,抛弃或简化。
或者例如问自己如果 - 如果你想要,例如将DAL替换为使用不同类型的存储(不同的组织或任何需要您更改数据/ DAL操作的方式) - 您的BLL将如何显示?相同?您的业务层不应该“跟踪数据” - 它应该有自己的规则,更多关于域的逻辑,您正在做的事情。虽然数据应该与数据有关。
因此,简而言之,问题主要在于您如何设计系统 - 如果您充分利用业务层(通常除非相对简单或者您决定采用完全不同的架构,否则应该使用它),然后使用它,如果不是没有必要复制。
希望这会有所帮助。