【问题标题】:Does the Presenter Perform GUI Logic in the MVP Pattern?Presenter 是否在 MVP 模式中执行 GUI 逻辑?
【发布时间】:2012-02-28 01:46:11
【问题描述】:

我们正在使用 MVP 模式,我想知道如何处理 GUI 操作。

例如,当用户想要从网格中删除一行时,用户按下删除按钮。此时你可以做两件事:

1) 拨打_presenter.DeleteRow(),然后演示者拨打_view.SelectedRow。然后presenter调用view.AskUserForConfirmation(),当它返回DialogResult.OK时,presenter实际上删除了底层对象并刷新了grid。

2) 表单要求用户确认,当DialogResultOK 时,调用presenter.Delete(myObject) 或调用presenter.Delete(),并在Delete 方法中通过调用@987654330 检索对象@。

你如何处理这些情况?

【问题讨论】:

    标签: c# winforms mvp


    【解决方案1】:

    MVP 模式应该将您的逻辑、视图和数据访问分开。因此,当试图决定某件事应该去哪里时,问问自己在你试图做的事情中是否有实际的业务逻辑。

    您是否希望您的业务层具有显示弹出窗口的逻辑?可能不是。这只是一条确认消息。您可能希望有一个帮助类来生成您的风格化弹出窗口,但这与您的 Presenter 层是分开的。

    【讨论】:

      【解决方案2】:

      选项 2。请求确认是演示者无需担心的 UI 责任。在需要对模型进行实际操作或需要调用一些复杂的业务逻辑之前,我不会让演示者参与其中。

      这并不意味着选项 1 无效。在我看来,它只会造成不必要的视图/演示者喋喋不休。

      【讨论】:

        猜你喜欢
        • 2019-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-07-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多