如何理解.NET MVVM设计模式

发布时间:2021-10-29 15:49:42 作者:柒染
来源:亿速云 阅读:105

如何理解.NET MVVM设计模式,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

MVVM 模式能够帮你把你程序的业务与展现逻辑从用户界面干净地分离开。保持程序逻辑与界面分离能够帮助解决很多开发以及设计问题,能够使你的程序能更容易的测试,维护与升级。它也能很大程度的增加代码重用性,并让开发者与界面设计者更容易地相互合作。

使用 MVVM 模式,程序的 UI 和其背后的展现与业务逻辑将被分离至三个类中:

1-视图,封装 UI 与 UI 逻辑

2-模型视图,封装展示逻辑与状态

3-模型,封装程序的业务逻辑以及数据

MVVM 模式是展示-模型模式的变种,它优化了一些 WPF 的核心特性,例如数据绑定,数据模版,命令以及行为。在 MVVM 模式中,视图通过数据绑定以及命令行与视图模型交互,并改变事件通知。视图模型查询观察并协调模型更新,转换,校验以及聚合数据,从而在视图显示。

下图展示了 MVVM 类以及它们之间的交互:

如何理解.NET MVVM设计模式

视图类

视图的责任便是定义用户在屏幕上能看到的一切的结构以及外观。理想的视图背后的代码只包含调用 InitializeComponent 方法的构造函数。视图通常扮演以下关键角色:

视图模型类

视图模型在 MVVM 模式中为视图封装了展示逻辑,它并不是直接引用视图或者任何其他关于视图特定的实现或者类型。视图模型实现了属性以及命令使得视图进行数据绑定,并通过改变事件通知来提醒视图状态已经改变了。视图模型提供的属性和命令定义了提供给 UI 的功能。但是视图定义了如何渲染的功能。

视图模型负责协调视图与任何需要的模型类的交互。很典型的,视图模型与视图类有着一堆多的关系。视图模型可以选择直接将模型类暴露给视图,因此视图的控件能够直击进行数据绑定。视图模型可以转换或者操纵模型数据所以能够很容易被视图使用。

很典型的,视图模型会定义能被展现在 UI 上并被用户调用的的命令或者行为。一个通用的例子就是当视图模型需要提交命令时会允许用户提交数据到网络服务或者数据库。视图可以选择用一个按钮来展示所以用户能够点击该按钮提交数据。典型地,当命令编程不可用的,它相关的 UI 展示也变得不可用。视图模型通常扮演下面这些关键角色:

模型类

model 在 MVVM 模式中封装了业务逻辑以及数据,业务逻辑定义了像所有检索和程序数据管理相关的程序逻辑一样,用来确保所有的保证数据持久与有效的业务规则被应用。***化代码重用,模型不能包含任何特定的情况,特定的用户任务以及程序逻辑。

典型的有模型为程序展现了客户端域模型,模型也可能包含支持数据访问与缓存的代码,即使有一个分离的数据库或者服务被使用。模型与数据房分层通常被作为数据访问或呜呜结构而生成,例如 ADO.NET 尸体矿井唉,WCF 数据服务,或者 WCF RIA 服务。

模型层实现了轻松绑定视图的功能。这通常意味着它支持通过 INotifyPropertyChanged 与 INotifyCollectionChanged 进行属性与集合更改通告。展现对象集合的模型类典型地源自 ObservableCollection<T>类,该类提供了对 INotifyCollectionChanged 接口的实现。

模型也能通过 IDataErrorInfo 接口支持数据验证以及错误报告。这些接口允许当数值改变时的 WPF 数据绑定被通知,从而更新界面。模型通常扮演如下的关键角色:

看完上述内容,你们掌握如何理解.NET MVVM设计模式的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

推荐阅读:
  1. 目前全球最主流的四种Android架构简介与理解
  2. 详解Vue双向数据绑定原理解析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mvvm

上一篇:如何进行Java ImageIO图像合并效率测试

下一篇:Mysql数据分组排名实现的示例分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》