1

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

4

1 回答 1

0

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

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

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

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

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

所以,简而言之,问题主要是你如何设计你的系统——如果你很好地利用了一个业务层(通常你应该使用它,除非它相对简单,或者你决定使用完全不同的架构)然后使用它,如果不是没有需要复制。

希望这可以帮助。

于 2012-04-15T14:43:00.357 回答