MVC
架构前言:
在面向对象程序设计中,一个架构的好坏标准我们经常已是否高内聚、低耦合的标准来评定的,这两个参数很大程度决定的你的程序的可重用性、移植性,在iOS中是否能够达到组件化的架构设计,这两个参数也是很重要的 ,架构的好坏也决定了你项目的生命周期。
而架构体现出来的价值体现于不光是它的可重用性、移植性,让项目维护以及扩展更加轻松,从而节约时间成本,这也是体现架构的价值的因素。
在 iOS开发中,无论是MVC架构,MVVM架,MVP架构, 之所以存在并且被大规模使用,说明自身就有其 价值,要学会找到最适合自己项目的架构,这片文章简单介绍MVC(Model View Controller)架构。
MVC介绍
这里是苹果官网的MVC介绍图
可以查看链接查看官网介绍
MVC核心图解
核心:
图中可以看出来 View 与 Model不进行通信,通信全部是有Controller这个通道来协调处理。
模型-视图-控制器(MVC)设计模式为应用程序中的对象分配以下三个角色
模型: Model
操作内容 : 数据获取,数据转模型,对数据模型进行操作。
视图:View
操作内容 :用户所见视图控制器,所展现出来的基本样式 例如 UIKit 和 AppKit 里面相关组件(View,TableView等)以及事件响应
控制器: Controller
操作内容 : 管理控制其他对象的生命周期 ,协调 Model与View的通讯链接
实际场景: 当获取 View层的点击事件, 需要通过controller 告知Model 更新数据, Model 告知控制器我已经完成更新,控制器在告诉View 刷新页面
MVC缺点与适用
缺点:
1)网络逻辑(官方推荐的mvc里面忘记了网络逻辑的归属)
2)厚重的ViewController(不知道往哪里放的东西全部放到了这里,视图处理逻辑和业务逻辑,包括上面的网络逻辑相关代码)
3)较差的可测试性 (厚重的ViewController,对单元测试不太友好, 吐槽一下,一般公司是不需要)
适用:
假如说你的应用程序不会是一个非常庞大的项目,且对代码没有特别的什么要求,且不需要什么单元测试,MVC虽然有以上几点的缺点,但也可以成为你最好的选择,因为被大家广泛使用的架构以及最为简单和理解的架构,MVC(Model View Controller)也是构建iOS App的标准模式,也是苹果推荐的一个用来组织代码的权威范式。