MVVM是Model-View-ViewModel的简写。它本质上就是MVC的改进版。MVVM模式有助于将应用程序的业务和表示逻辑与用户界面 (UI) 清晰分离。 保持应用程序逻辑和UI之间的清晰分离有助于解决许多开发问题,并使应用程序更易于测试、维护和演变。 它还可以显著提高代码重用机会,并允许开发人员和UI设计人员在开发应用各自的部分时更轻松地进行协作。
组成部分
MVVM模式,应用的UI以及基础表示和业务逻辑被分成三个独立的类:
视图(View),用于封装UI和UI逻辑, 也就是交互界面,接受用户的输入和展示数据;
视图模型(ViewModel),用于封装表示逻辑和状态;
模型(Model),用于封装应用的业务逻辑和数据。
优势
低耦合:View可以独立于Model变化和修改,一个ViewModel可以绑定到不同的”View”上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
提高代码重用:可以把一些视图逻辑放在一个ViewModel里面,让很多View重用这段视图逻辑;
独立开发:业务开发人员可以专注于业务逻辑和数据的开发,界面开发人员可以专注于页面的开发。
使用场景
以下是MVVM架构的应用场景:
场景和描述:
复杂的用户界面 当应用程序具有复杂的用户界面和大量的交互时,MVVM可以提供更好的分层和组织代码的方式。
需要频繁变更的用户界面 如果应用程序的用户界面需要频繁变更,MVVM的数据绑定机制可以简化界面更新的过程,提高开发效率。
需要同时支持多个平台或设备的应用程序 MVVM的解耦性和可测试性使其非常适合开发需要在多个平台或设备上运行的应用程序,如移动应用和桌面应用。
需要重用代码和逻辑的应用程序 MVVM的分离关注点和数据绑定机制使得代码和逻辑的重用更加容易,从而减少了代码的重复编写。
需要高可维护性和可扩展性的应用程序 MVVM的分层结构和清晰的职责分离使得应用程序更易于维护和扩展,有利于团队合作和长期项目的发展。
搭建MVVM架构
1、首先需要新建一个项目,再创建Views,ViewModels,Models 三个文件夹,就是一个基本架构。
2、将我们写的xaml页面放在Views目录下,一般就是命名为:xxxView,然后与之对应的视图模型命令为xxxViewModel放在ViewModels目录下,另外将需要的数据模型放置在Models目录下。
3、再者需要创建一些辅助类的文件目录,一般会创建Resources用于存放一些资源如样式,字体,图片等等,创建一个Helper或者Common的目录,用于存放一些公用的方法类或者帮助类。