当前位置: 首页 > 编程语言 > C#

三层模式与MVVM的对比分享

时间:2023-04-10 14:11:57 C#

三层模式与MVVM的对比我对MVVM一窍不通。我总是遵循3层模式,其中一层是UI,另一层是业务层,最后一层是数据访问层。在这一层中,我们将请求从UI发送到业务层,业务层与数据访问层进行交互。这种模式一切顺利,然后我的问题是为什么要学习MVVM。MVVM有什么优势?MVVP有什么可以毫不费力地完成的事情吗?请详细讨论。谢谢。层与我之前写的相反,MVVM模式不是将UI层分为3层,而是将UI层分为另外两个层-View和ViewModel。因此,如果我们有DAL、BLL和UI,那么现在我们有模型(DAL和BLL)和ViewModel+View(而不是只有一层UI)。它仍然是3层,但编排方式不同(如果你真的考虑一下——DAL从来都不是真正的一层——它充其量只是一个辅助类,所以前面提到的3层实际上只是2层,现在它变成了MVVM的3层)。原因如果您考虑一下,您会发现在3层架构中,通常UI与表示代码和应用程??序逻辑代码混合在一起。这违反了SRP(单一职责原则)并且由于多种原因是不好的。在MVVM中,UI层分为两层。ViewModel负责应用程序逻辑,View负责表示。这为您提供了三件非常重要的事情:更好的代码可维护性。更易于使用VSDesigner和Blend。又名可混合性。(这可以说是MVVM最强大的功能。它确实提高了生产力)允许使用自动化测试来测试ViewModel,而直到现在我们必须测试UI本身,并且在UI上进行自动化测试很复杂。这被称为可测试性多年来,我一直在撰写有关n层架构的文章。我一年多前开始练习MVVM。在某些时候这可能是一段艰难的旅程,但是伙计,这真的值得付出努力。MVVM用于构建UI层。它是一种模式,可以在业务对象和UI框架之间实现非常好的交互。您不必更改3层架构。MVVM处于另一个抽象级别。在这里你可以找到一个非常好的介绍MVVM的视频并且可能会回答很多问题。MVVM本身可以说是一个三层架构。这些层都存在于同一个应用程序中。“3层”有时也称为n层架构,更多的是将UI、服务层和数据层分离到不同的服务器上。如果你有这种分层,那么MVVM将不会取代它。它只是添加到UI层,将其分成三层。这是一篇关于MVVM的文章,它展示了通过MVP的经典MVC和MVVM之间的一些关系:http://msdn.microsoft.com/en-us/magazine/dd419663.aspx另请参阅我对这个问题的回答。它解释了在MVC而不是旧版本上使用MVVM的一些原因。MVVM与WPF、Silverlight/Moonlight和WindowsPhone7特别相关,因为它利用了这些框架中内置的强大数据绑定功能。以上就是C#学习教程:比较3层模型和MVVM分享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权请点击右侧联系管理员删除。如需转载请注明出处: