复杂的软件必须有清晰合理的架构,否则无法开发和维护。

MVC(Model-View-Controller)是最常见的软件架构之一,业界有着广泛的应用。它本身很容易理解,但是要讲清楚,它与衍生的MVP和MVVM架构的区别就不容易了,但是通过几张图片可以很容易对架构的基本原理进行理解。

1.     MVC

MVC模式的意思是,软件分为三个部分,Model,View,Controller

Model: 保存的数据

View: 视图,用户界面

Controller: 控制器,也就是业务逻辑

他们三者的具体关系如图:

软件架构MVC, MVP, MVVM

软件架构MVC, MVP, MVVM

View将用户指令发送给Controller, Controller 根据业务逻辑处理指令,然后将结果发送给Model去保存结果,Model保存完结果之后,将结果发送给View显示出来,所有的通信都是单向的。

2.     互动模式

接受用户指令的时候,MVC可以分成两种模式,一种是通过View接受指令,传给Controller,如图:

软件架构MVC, MVP, MVVM

软件架构MVC, MVP, MVVM

另外一种是通过Controller接受指令,如图:

软件架构MVC, MVP, MVVM

软件架构MVC, MVP, MVVM

3.     MVP模式

MVP就是分为Model,View,Presenter,就是讲Controller变为了Presenter,不过同时改变了通信方向,具体表现如图:

软件架构MVC, MVP, MVVM

软件架构MVC, MVP, MVVM

各部分通信都是双向的,View和Model不发生关系,View非常薄,数据被动视图,没有任何的主动性,只是用来显示数据,Presenter会很厚,包含所有的逻辑(业务逻辑和视图显示逻辑)。

4.    MVVM

MVVM就是将Presenter变成了ViewModel,唯一的区别就是MVVM采用双向绑定,View的变化会自动反映在ViewModel上,反之,ViewModel的改变也会在View上体现。

软件架构MVC, MVP, MVVM

软件架构MVC, MVP, MVVM




相关文章: