我不知道MVVM。我总是遵循 3 层模式,其中一层是 UI,另一层是业务层,最后一层是数据访问层。
在这一层中,我们将请求从 UI 发送到业务层,业务层与数据访问层进行交互。在这种模式下,一切都很顺利,那么我的问题是为什么要学习 MVVM。 MVVM 的优点是什么?有哪些事情可以使用 MVVP 轻松完成。请详细讨论。谢谢。
层次
与 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 一起使用。又名混合性。 (这可以说是MVVM最强大的功能。它确实提高了生产力)
允许通过自动化测试来测试 ViewModel,而到目前为止我们必须测试 UI 本身,并且对 UI 进行自动化测试很复杂。这就是所谓的可测试性
就个人而言;我多年来一直在写 n 层架构。我一年多前开始练习 MVVM。有时候这可能会是一段艰难的旅程,但是伙计,这是really值得努力。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)