【发布时间】:2010-12-10 19:57:53
【问题描述】:
我们一直在使用 MVP 模式和 Winforms 并取得了相当大的成功。但是,关于 MVP 的问题总是会弹出:
对于演示者来说,好的粒度是什么?
我的意思是:对于 Winforms,细粒度通常非常适合用户控件。这样,在设计更复杂的 GUI 时,很容易重用用户控件并将它们用作构建块。但是,与演示者具有相同的(精细)粒度似乎是一个问题。
一方面,拥有粗粒度的演示者会阻碍使用“插件”控件的能力,并且有点违反 DRY 原则:多个演示者通常需要实现相同的逻辑(填充例如,客户列表),供多个更复杂的控件使用。
另一方面,细粒度的演示者似乎限制了在不同情况下重用控件的能力。例如,编辑视图有时可能需要立即保存客户;有时它需要将其链接到其他东西;有时只需要验证它;等等。它通常取决于更复杂的控制。但也有相当多的共同行为。
请注意,在这两种情况下,1-presenter-1-view 都是可以实现的。什么是“1-view”变化。
什么通常被认为是使用 MVP 和 Winforms 的演示者粒度的最佳实践?
- 细粒度的演示者和可自定义的行为通过选项或类似性质的东西?
- Presenter 粗粒度且 Presenter 可重用性低?
- 还有别的吗?
免责声明:我们主要使用监督控制器,但我认为它也适用于被动视图。也很抱歉问了这么长的问题。
【问题讨论】: