【问题标题】:What should be the responsibility of a presenter here?主持人在这里应该承担什么责任?
【发布时间】:2011-02-04 07:55:29
【问题描述】:

我有一个 3 层设计。 (UI / BLL / DAL)

UI = ASP.NET MVC

在我看来,我收集了一个类别的产品。 示例:产品 1、产品 2 等。

用户能够从视图中选择或删除(通过选中复选框)产品,最终在用户提交这些更改时保存为集合。

有了这个 3 层设计,这个产品集合将如何保存?如何过滤产品(删除和添加)到类别对象?

这是我的选择。

(A) 这是控制器的责任,那么伪代码将是

  1. 查找用户选择或删除的产品并与现有记录进行比较。
  2. 将该集合添加或删除到类别对象。
  3. 调用 SaveCategory(category); // BLL CALL

这里前 2 个过程步骤发生在控制器中。

(B) 这是 BLL 的责任,那么伪代码将是

  1. 收集用户选择的产品
  2. 保存类别(类别,产品); // BLL CALL

这里由 SaveCategory (BLL) 决定应该删除哪些产品并将其添加到数据库中。

谢谢

【问题讨论】:

    标签: asp.net-mvc design-patterns 3-tier


    【解决方案1】:

    逻辑应该存在于业务层而不是控制器中。您的控制器应尽可能薄,并且仅协调视图与处理您的模型和业务需求的其他层之间的通信。

    【讨论】:

    • 所以这意味着我需要使用 DTO 将用户集合传输到 BLL。正确的?我试图避免 DTO 并直接从控制器使用实体。基本上用户可以从演示者中添加或删除任何内容,但在 BLL 中它将被验证。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 2017-02-12
    • 2012-03-27
    • 2014-12-29
    相关资源
    最近更新 更多