gpt4 book ai didi

winforms - 公共(public)方法或订阅查看事件

转载 作者:行者123 更新时间:2023-12-03 05:11:16 25 4
gpt4 key购买 nike

我编写了一个 MVP 项目,其中 View 是实现我的 IView 接口(interface)的 WinForm。我正在审查代码,尽我所能改进它,并且想询问您关于 View 和演示者如何交互的想法。您认为以下哪项是最佳实践?

  1. 公开演示者类的方法以供 View 使用。 (即公开它们)。
  2. 让演示者监听 View 类引发的事件。

例如,我的 MVP 使用通过串行端口进行通信的服务。为了连接到远程设备,我的 View 调用公共(public) Presenter 方法 Connect(),然后该方法调用适当的服务方法。

引发 Connect() 事件并让演示者监听它是否是更好的做法?

最佳答案

通常,我的工作方式是使 View 依赖于演示者,而演示者依赖于模型。这意味着多个演示者可以使用相同的模型,并且多个 View (不同的 UI 布局,或 Winforms 与 Web 等)可以使用相同的演示者。为了促进这一点, View 调用演示器上的公共(public)方法并监听来自演示器的事件以说明数据何时发生更改。

举个例子来说明为什么您可能希望以这种方式工作,想象一个界面,它有两个 View ,一个用于初学者用户,一个用于专家,其中初学者 View 显示专家命令的子集。如果这两个 View 使用同一个演示者,那么初学者 View 将需要公开所有专家命令的事件,因为演示者需要它们在那里,以便它可以绑定(bind)到它们 - 即使它们永远不会被触发。另一方面,演示者可以公开所有专家选项的方法,而初学者 View 永远不会调用它们,这意味着 View 和演示者都没有实现未使用的功能。

关于winforms - 公共(public)方法或订阅查看事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1012069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com