【问题标题】:If I Use a BLL should I still access the DAL?如果我使用 BLL,我还应该访问 DAL 吗?
【发布时间】:2012-04-27 02:47:00
【问题描述】:

我想使用存储库模式创建 n 层架构。我想知道通过 BLL 层复制所有调用然后通过 BLL 访问仅数据调用是否有意义?或者我可以通过 DAL 直接访问一些东西,而通过 BLL 访问一些东西吗?

【问题讨论】:

  • 我个人只通过我的 bll 访问我的 dal,并且会复制呼叫。你永远不知道什么时候可能需要添加一些业务逻辑,在 bll 中修改调用要比在 bll 中添加新调用要容易得多。
  • 如何定义“仅数据调用”?为什么你觉得你在 BL 中“重复调用”?你在编程什么技术(Winforms、Webforms、MVC...?)?

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


【解决方案1】:

IMO 仅仅为了它而复制是没有意义的。
(虽然实际上每种方法都有其优点和缺点,但没有什么总是错的或好的)

通常,尽管数据层处理例如(简化的)与表完全匹配的有点“粒度”的数据等。

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

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

或者例如问问自己跟随 - 如果你想,例如将 DAL 替换为使用不同类型的存储(不同的事物组织或任何需要您更改数据/DAL 操作方式的事物)- 您的 BLL 会是什么样子?相同?你的业务层不应该“遵循数据”——它应该有自己的规则,更多的是关于你的领域的逻辑,你在做什么。而数据应该是关于数据的。

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

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 2012-10-27
    • 2017-09-28
    • 1970-01-01
    相关资源
    最近更新 更多