我不知道MVVM.我总是遵循3层模式,其中一层是UI,另一层是业务层,最后一层是数据访问层.
在这一层,我们将请求从UI发送到业务层,业务层与数据访问层交互.在这种模式下,一切顺利然后我的问题为什么要学习MVVM.MVVM的优点是什么?使用MVVP可以做很少的努力.请详细讨论.谢谢.
Ela*_*atz 15
图层
与我之前写的ppl相反 - MVVM模式不是将UI层分成3层,而是将UI层分成两个附加层 - View和ViewModel.
所以,如果我们有DAL,BLL和UI,现在我们有Model(DAL&BLL)和ViewModel + View(而不仅仅是一个图层UI).
它仍然是3层,但是编排的方式不同(如果你真的想到它 - DAL从来就不是一个层 - 它最多是一个辅助类,所以前面提到的3层实际上只有2层,现在变成了3层MVVM).
原因
如果你考虑一下,你会发现在3层架构中,通常UI与表示代码和应用程序逻辑代码混合在一起.这违反了SRP(单一责任原则),并且由于几个原因而不好.在MVVM中,UI层分为两层.ViewModel负责应用程序逻辑,View负责演示.
这可以让你有三个非常重要的事情:
更好的代码可维护性.
更容易使用VS设计师和Blend.又名Blendability.(这可以说是MVVM最强大的特性.它确实提高了生产力)
允许使用自动化测试来测试ViewModel,而到目前为止我们必须测试UI本身,并且在UI上进行自动化测试很复杂.这称为可测试性
在个人笔记上; 多年来我一直在写n层架构.我在一年多前开始练习MVVM.在某些时候这可能是一次艰难的旅程,但是男人,这真的值得付出努力.