MVC
标准的设计模式,模型,视图,控制器 之间的数据操作与更新。可以完成绝大多数的项目开发。(个人经验单人项目开发完全可以使用此模式)
- Model:负责网络请求的数据转化为model,并赋值到View中做显示。
- View:负责页面的布局操作,以及业务逻辑的相关判断。分开不同的方法去处理UI以及数据,可以尽量的避免数据与UI的重合。便于拆离。
- Controller:负责Model中的数据到View中的更新,以及View更新完成之后的回调操作,网络请求等操作。
MVP
基于MVC演化而来的一种设计模式,为了避免数据层和视图层的混合,便于业务的拆分而生。(业务代码繁重,可考虑使用)
- Model:负责网络请求的数据转化为model,不作数据处理。
- View:负责页面的布局操作以及此页面数据赋值。
- Presenter:负责绑定View以及model中的业务操作判断,不会View和Model相互引用,便于其他符合业务逻辑判断的View层通过Presenter(逻辑判断或者业务判断)引用Model层的数据。
MVVM
MVVM和MVP的最大区别是采用了双向绑定机制,View的变动,自动反映在ViewModel上。(稍优于前面的两种模式,业务拆分合理,代码的数据会不断的增加,以及相应的数据转化会大大的增加)
- Model:负责网络请求的数据转化为model,不作数据处理。
- View:负责页面的布局。
- ViewController:负责各个层级之间的调用。
- ViewModel:负责Model层的数据引入以及View层的数据赋值以及相应的业务逻辑判断。