gpt4 book ai didi

c# - MVP 和 Presenter 粒度

转载 作者:可可西里 更新时间:2023-11-01 08:48:30 28 4
gpt4 key购买 nike

我们一直在使用 MVP 模式和 Winforms,并取得了相当大的成功。然而,关于 MVP 总是弹出一个问题:

对于演示者来说,什么是好的粒度?

我的意思是:对于 Winforms,细粒度通常适用于用户控件。这样,在设计更复杂的 GUI 时,很容易重用用户控件并将它们用作构建 block 。但是,与演示者具有相同的(精细)粒度似乎是一个问题。

一方面,粗粒度的演示者阻碍了使用“插件”控件的能力,并且它有点违反 DRY 原则:多个演示者通常需要实现相同的逻辑(填充例如,客户列表),它由多个更复杂的控件使用。

另一方面,细粒度呈现器似乎限制了在不同情况下重用控件的能力。例如,编辑 View 有时可能需要立即保存客户;有时它需要将它链接到其他东西;有时只是需要验证它;等等。它通常取决于更复杂的控制。但也有相当多的共同行为。

请注意,在这两种情况下,1-presenter-1-view 都是可以实现的。什么被认为是“1 View ”更改。

通常认为使用 MVP 和 Winforms 的演示者粒度的最佳实践是什么?

  • 细粒度的演示者和可定制的行为通过选项或类似的东西?
  • 粗粒度的 Presenter 和低 Presenter 可重用性?
  • 还有别的吗?

免责声明:我们主要使用监督 Controller ,但我认为它也适用于被动 View 。也很抱歉问了这么长的问题。

最佳答案

我们对所有客户都使用 MVP,这绝对是不止一次出现的对话。我们的类和演示者背后的代码应该有多干净?话虽如此,我们还是选择了使用粗粒度的 Presenter 方法。基本上,每个表单都有自己的呈现器,并且只会使用其 View 获取和设置特定表单上任何控件的属性。填充控件(例如调用数据库以填充组合框)位于公共(public)服务类中。用户输入数据的任何验证都位于 BO 类中,可以由任何和/或所有演示者重复使用。我希望这会有所帮助。

关于c# - MVP 和 Presenter 粒度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1636601/

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