我过去编写的所有 WinForms 向导都在 UI 和模型之间存在高度耦合。也就是说:各个页面都知道启用/禁用下一个/上一个按钮,如何对按下下一个按钮使用react等。这使得测试变得困难,因为要测试任何逻辑,你必须先把很多脚手架放在一起。
我最近一直在使用 MVC(以 ASP.MVC 的形式),我发现它很容易测试。我也玩过 WPF,我想我正在了解 M-V-VM。
我正在努力解决 WinForms 中的 M-V-P 模式(即没有 WPF 样式的数据绑定(bind))。特别是,我需要实现一个向导。
我每页都有一个 Controller 吗?管理整个向导的 View 模型?还有什么?
这是在 C# 中的 WinForms(不是 WPF)中。 .Net 2.0 首选。
最佳答案
最后,我选择了 MVVM 和 MVP 之间的选择,混合使用了 WinForms 数据绑定(bind)和 View 回调接口(interface)。我猜它比 MVVM 更接近 MVP。每个页面都有一个 viewmodel/presenter,向导本身有自己的 viewmodel/presenter 来管理流程(例如,某些选项会跳过后面的向导页面)。
结果非常好,并且为每个演示者类编写单元测试相当容易。
底层向导框架不使用 MVVM 或 MVP。这只是普通的 WinForms 代码。
关于winforms - 为用 WinForms 编写的向导使用 MVC、MVP 或 MVVM 模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1136032/