6月更文挑战|设计模式 —— MVVM模式

这是我参与更文挑战的第27天,活动详情查看:更文挑战

MVVM模式

MVVM模式,Model-View-ViewModel。MVVM模式同样是MVC模式增强版,将其中的View 的状态和行为抽象化,让视图UI和业务逻辑分开。MVVM的核心是数据驱动即ViewModel,ViewModel也是充当中间桥梁作用连接View和Model。ViewModel负责处理Model数据对象,便于数据更易于管理和使用。

架构分层

Model

模型层和MVC模式中所负责的能力和职责是一样的:负责数据的增删改查,数据模型储存数据。

View

视图层同理在MVC模式和MVP模式都介绍过职责是用来展示UI界面和响应用户交互,负责发送事件后相应反馈结果,以用户交互可理解的形式存在。

ViewModel

ViewModel是MVVM模式中重要的一层,是MVVM模式与MVC模式不同支持,同时也是MVVM模式的核心思想。当开发业务越来越多系统越来越复杂的时候,MVC模式Controller会变得臃肿难以维护。采用MVVM模式使用ViewModel将数据和逻辑处理部分抽离来单独管理。在MVVM模式中VM并不是取代C,而是将业务逻辑和业务操作分割开来,视图操作业务还是保留在C中,复杂业务数据逻辑和处理过程由VM去完成。

image.png

双向绑定

数据双向绑定常见前端开发中,比如一个变量值,通过输入框输入数值赋值给这个变量就需要为输入框设置一个监听器;每次输入框数值发生变化通过监听器将数值赋值给变量;当外部操作对变量发生变化时,需要对输入框做重新数值处理。若实现双向绑定,变量值在外部操作发生变化时能同步到输入框,输入框输入数值也能及时赋值给变量。实时上双向绑定原理可以理解为发布者-订阅者模式

image.png

像是Vue前端框架就实现数据双向绑定功能,不需要开发者自行实现实时更新数据,只要实现框架样式代码就能简单实现。

参考

  • 《Android源码设计模式》
  • Vue
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享