【问题标题】:Architecture Layers架构层
【发布时间】:2015-07-22 02:07:52
【问题描述】:

这是我的 VS 解决方案:

这是架构:

我有几个问题:

1) 我应该在哪里开始交易并提交?服务层还是表示层? 2)我应该在哪里访问数据层?从服务层还是从模型/核心/域层? 3) 我应该在哪里访问“ProductDAO”以更新产品数量?

【问题讨论】:

  • 下次请包含代码示例作为代码,而不是截图。
  • 好的。我将会。对不起。

标签: architecture model layer data-access-layer business-logic-layer


【解决方案1】:

1) 我会在服务层启动它。 Presentation 并不需要真正了解事务,Service 层是执行多个操作的层,希望是原子的

2) 用于访问 DAL 并不清楚。我会选择服务层,因为它是您其他课程之间的“粘合剂”。但是让你的领域模型知道它可能是有意义的。

3) 提交应与事务启动在同一位置,否则您可能会遇到复杂的代码和事务无法提交或回滚的情况。

【讨论】:

  • 1) 但是如果我使用 2 项服务,我会在其中启动交易吗?例如:Client1 使用 Service1 和 Service2,如果我在 Client1(表示层)开始事务,我只能在 Service1 和 Service2 工作时提交...
  • 然后添加一个控制器来初始化事务并调用两个不同的服务:)
  • 换句话说,你说我必须在表示层初始化事务......如果我有两个使用这些服务的应用程序?我需要为两者管理交易......
  • 并非如此。我所说的控制器不是指视图控制器,而是服务控制器。它可以与其他服务位于相同的命名空间和组件中。例如,如果涉及的服务是客户和订单服务,您可以拥有一个 TransactionService 来消费两者并负责交易。你也可以使用 UnitOfWork 模式,让 Uo 处理事务
猜你喜欢
  • 2010-12-09
  • 2011-07-30
  • 2019-03-07
  • 2011-06-02
  • 1970-01-01
  • 2011-09-30
  • 1970-01-01
  • 2012-07-21
相关资源
最近更新 更多