简述MVC以及MVC的三种变体
一、MVC
MVC由Mode、View、Controller三者组成,Mode负责逻辑数据处理,View负责视图的交互,Controller控制器负责View与Mode交互。
职能划分:
Mode:大量逻辑的处理,不负责View的逻辑处理,只为View / Controller 提供处理完(加工后)的数据支持。
View:展示视图,接收交互事件后转Controller进行逻辑处理,也可以对Mode数据进行请求。
Controller:处理View提交而来的时间处理,处理完成后决定是否向mode发送请求。
交互方式:
优劣:
优:在1979年提出,当时很先进。
劣:View与Mode直接交互,模块不可以其他项目中复用。
二、MVP
MVP与MVC类似,由Mode、View、Presenter三者组成,Mode负责逻辑数据处理,View负责视图的交互,Presenter代理负责View与Mode交互。
职能划分:
Mode:只为Controller 提供未处理的(原始)数据支持,并不进行自身数据处理。
View:只展示视图,接收交互事件后转Controller进行逻辑处理。
Presenter:以接口的方式进行交互处理。View逻辑交互,处理获取Mode原始数据后进行逻辑处理。处理完成后并对View和Mode进行相应操作。
交互方式:
优劣:
优:View模块组件性提高,可以在其他项目中复用。
劣:Presenter模块重而杂乱,可以根据View和Mode划分为多个子模块,这样单个文件不会过于臃肿。
三、MVVM
MVVM与MVC类似,由Mode、View、ViewMode三者组成,Mode负责逻辑数据处理,View负责视图的交互,ViewMode代理负责View与Mode交互。
职能划分:
Mode:只为Controller 提供未处理的(原始)数据支持,并不进行自身数据处理。
View:只展示视图,接收交互事件后转Controller进行逻辑处理。
ViewMode:以接口的基础上还有双向绑定,绑定View和Mode,在双方中的一方变化时无需额外逻辑操作即可实现View与Mode的同步数据。。
交互方式:
优劣:
优:View模块组件性提高,可以在其他项目中复用。
劣:ViewMode模块相比MVP中的Presenter较轻,但仍然重。
本文来自博客园,作者:Labant,转载请注明原文链接:https://www.cnblogs.com/lvshen/p/17840481.html