关于视图模型和接口

时间:2011-03-17 08:15:23

标签: mvvm interface view model

我正在开发一个WPF Prism应用程序,一切正常。我的视图模型都有接口,由MEF注入。

但是,我并不真正了解视图模型的接口的好处。毕竟,视图与其视图模型相关联,因此我认为永远不会有其他实现。

实际上,我的视图也有接口。看来这也有点矫枉过正?

所以我的问题是:我不能只删除所有视图和查看模型接口并直接注入视图和查看模型吗?是否有理由保留视图和视图模型的接口?

THX, →

3 个答案:

答案 0 :(得分:8)

这太过分了。我知道您可能想要嘲笑您的ViewModel,但我认为实践更重要。另外,为什么你甚至需要嘲笑你的ViewModels?任何需要模拟的逻辑都应该放入服务类恕我直言。

答案 1 :(得分:4)

连接你的VieWModel可以让你在测试中嘲笑它们,接口你的视图看起来确实有点过分。您不会交换您的视图,并且可以在ViewModel的模拟上进行UI测试,因此您不需要真正需要与它们进行交互。

答案 2 :(得分:2)

我能想到ViewModel接口的最大原因是你可以编写实现这些接口的模拟器,以便在单元测试时使用。由于一个ViewModel可能与另一个ViewModel通信,因此它可以在测试第一个时隐藏第二个ViewModels行为。

MVVM模式可以更容易地对类进行单元测试,因为它将数据和控件与UI层分开(这更难编写单元测试)。就个人而言,我不会为我的观点编写接口。