美文网首页iOS 面试知识集合准备iOS 面试
(一)iOS 常用架构模式MVC和MVVM

(一)iOS 常用架构模式MVC和MVVM

作者: 神迹之风 | 来源:发表于2018-11-09 10:52 被阅读5次

    面试中常常被问到项目中使用了什么架构模式,这篇文章对常用的两个架构模式做一个整理。


    架构模式

    架构模式是面向整个项目的,将整个项目拆分为几个不同的模块,这样能有效地管理应用程序,程序员可以在一个时间内专门关注一个方面。例如,您可以在不依赖业务逻辑的情况下专注于视图设计。同时也让应用程序的测试更加容易。同时也简化了分组开发。不同的开发人员可同时开发视图、控制器逻辑和业务逻辑。
    iOS开发中常用到的架构模式有:MVC、MVVM等。


    (一)MVC模式

    MVC是iOS开发中最基础的架构模式,它将项目拆分为数据模型(M)、UI试图(V)和逻辑控制器(C)这三个模块。

    • Model数据模型:专用用来存储对象数据的模型,一般用基于NSObject的基本类对模型数据进行封装,在.h文件中声明一些用来存储数据的属性。
    • View视图:展示UI 界面,主要是UIKit中的UIView类。
    • Controller逻辑控制器:负责协调Model和View,主要是UIKit中的UIViewController。
    MVC各个模块之间通信的实现方式:

    Controller和View之间主要是通过代理协议和block等实现通信;Controller和Model之间主要用到Notification消息通知和KVO等典型观察者模式实现通信;View和Model之间是隔离开的,不可以直接相互通信。

    MVC 的优点:
    1. 代码低耦合;
    2. 高重用性和可适用性;
    3. 较低的生命周期成本和高可维护性;
    4. 有利于软件工程化管理。
    MVC的缺点
    1. 控制器臃肿;
    2. 视图与控制器之间的连接过于紧密,不利于它们的独立重用;
    3. 缺少专门放网络逻辑代码的部分,网络逻辑代码放在控制器中,加剧了控制器臃肿;

    (二)MVVM模式

    随着业务规模的不断扩大,业务逻辑也越来越复杂,这样一来Controller控制器中的任务越来越繁重,以至于传统的MVC模式越来越难以满足低耦合、高内聚的设计要求,为了解决这个问题MVVM架构模式诞生了。
    MVVM是由微软公司提出的一种新的架构模式,基于MVC架构,特点是在View和Model之间多加了一层ViewModel来实现数据的绑定,从而解决了MVC中Controller过于臃肿的问题。
    MVVM帮助MVC模式中的Controller瘦身,将数据加工等一些非业务逻辑从Controller中抽离,让MVVM中的ViewModel负责View和Model之间的通信,并且完成通信间的额外操作,如数据转换、字符拼接等等。ViewModel还可以用来完成复杂的网络请求逻辑,从而更加降低了Controller的复杂度。

    MVVM中如何实现数据绑定

    MVVM模式的核心是ViewModel,当ViewModel发生变化时需要及时通知View更新,这里就需要将 ViewModel和View进行数据绑定,目前在iOS开发中较常用的两种绑定方式:

    1. 使用KVO,用于轻量级开发中;
    2. 采用RAC (ReactiveCocoa)作为绑定机制。
    MVVM所带来的新的问题
    1. 代码量会增加;
    2. MVVM将Model通过ViewModel与View绑定,使得bug很难调试。
    3. 数据绑定需要花费更多的内存。

    相关文章

      网友评论

        本文标题:(一)iOS 常用架构模式MVC和MVVM

        本文链接:https://www.haomeiwen.com/subject/zbsnxqtx.html