iOS MVC架构(设计模式)和MVVM

2021-01-23  本文已影响0人  iOS心安

本文转载自:星星月亮0

MVC(Model-View-Controller)

iOS应用程序都遵循MVC架构,iOS13推出的SwiftUI除外,SwiftUI的设计遵循的MVVM.
MVC是构建iOS App的标准模式,是苹果推荐的一个用来组织代码的权威范式,市面上大部分App都是这样构建的

image

作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群: 711315161,不管你是小白还是大牛欢迎入驻 ,分享BAT,阿里面试题、面试经验,讨论技术, 大家一起交流学习成长!

控制器要和模型或是视图沟通是很容易的,因为控制器本身就持有模型和视图,模型和视图对象就是在控制器中创建的,所有控制器很容易就可以获取模型和视图对象的属性和方法

视图要和控制器沟通可以通过button添加点击(target-action)事件,delegate, datasource delegate

模型要和控制器沟通要通过kvo和通知(Notification)

会弄很多个MVC,层层包含,相互协助
iOS里有API,允许一个控制器把其他的MVC当作自己的视图,如下图.

image

像下图,这样可不行,会把自己都看晕,所以打一个红圈圈,淘汰掉

image

MVVM(Model-View-ViewModel)

image
image
image

MVC虽然是storyboard项目中iOS app的标准模式,但是它也有一个别称叫Massive View Controller(重量级控制器),也就是当业务逻辑比较复杂的时候ViewController打代码会很多。为了给控制器瘦身,就引入ViewModel层用来处理网络请求,数据转换等业务逻辑(这些在MVC里也是由控制器来做)。而控制器更多的是负责和界面展示,用户交互相关的功能。并且把controller和view合并成View.
这样就由MVC衍生出MVVM架构。

  • Model:数据
  • View: 视图展示(UIView + UIViewController)
  • ViewModel: 连接View和Model


    image
image

swiftUI(MVVM)

iOS13推出的SwiftUI苹果的标准架构就是MVVM。不需要我们像在用storyboard的时候一样,本来苹果MVC是苹果的标准模式,我们硬是要拆一个MVVM出来

上一篇下一篇

猜你喜欢

热点阅读