IOS框架 MVC、MVVM、MVP

MVC MVVM MVP都是为了上一篇文章讲的三层/四层架构服务的,总体用来让项目的结构清晰,易读,解耦,复用。

MVC-APPLE 全称Model(数据)-View(视图)-Controller(控制器),Model和View都被Controller持有,同时两者没有直接关系。Controller处理Model并赋值给View。这样就造成Model和View是可以重用。动态性更强,缺点就是Controller内的代码量会增大,同时会暴露属性,不安全。

MVC-变种 会把赋值的代码封装到View里面,View只暴露一个接口给Controller调用,这样做的优点就是减少Controller的代码量,同时把没必要暴露的属性隐藏起来,更安全。

MVP 全称Model(数据)-View(视图)-Presenter(持有控制器),Presenter提供方法持有住Controller,然后在Presenter里面的方法处理Model和View的交互,赋值,这样做可以减少Controller的代码量。

MVVM 全称Model(数据)-View(视图)-ViewModel(数据和控制器代持器),ViewModel提供方法持有Controller,同时ViewModel提供属性,当ViewModel传入数据后,ViewModel的属性会对接数据。ViewModel被View持有,View中监听ViewModel的属性,当ViewModel中的属性改变的时候,View页面的赋值也会随之改变。MVVM的优点可以减少Controller的代码量,同时消除View和Model的耦合。缺点则是复杂度比较高,需要注意监听器的增加和消除。

以上是我对MVC、MVVM、MVP框架的一些浅显的理解,欢迎指正。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容