iOS设计模式--MVC、MVP、MVVM

本文介绍了iOS开发中的三种常见架构模式:MVC、MVP和MVVM。MVC模式下,Controller负责协调View和Model;MVP模式通过Presenter作为桥梁减少View和Model的耦合;MVVM则采用双向绑定,使得View和ViewModel能自动同步。每种模式都有其优缺点,如MVC可能导致Controller过于庞大,MVP的Presenter可能臃肿,而MVVM在大型项目中维护成本较高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

MVC

概述

优缺点

MVP

概述

优缺点

MVVM

概述

优缺点


        MVC、MVP、MVVM都是常见的软件架构设计模式,其通过分离关注点来改进代码组织方式。一种架构模式往往使用了多种设计模式。

MVC

概述

        MVC:Model-View-Controller

        MVC是通过controller的控制去操作model层的数据,并且返回给view层展示,模式图如下:

        MVC工作原理:用户触发事件 -- view层发送指令到controller层 -- controller通知model层更新数据 -- 数据更新完显示在view层上

优缺点

        优点

        通过controller控制全局,同时将view和model的变化分开,对复杂混乱的项目结构,有了明确的组织方式

        缺点

        1.当业务逻辑增加时,大量的逻辑代码放进了controller,导致controller越发臃肿,后期维护成本随之提升

        2.没有区分业务逻辑和业务展示,对单元测试不友好

MVP

概述

        MVP:Model-View-Presenter

        MVP是MVC的演化,MVC中的model和view两层存在耦合,之间相互依赖过多,由于view可以和model直接通信,造成了view既依赖于controller又依赖于model的局面,controller同样依赖于view和model,耦合性过高。在这种情况下MVP应运而生。其模式图如下:

        可以看出与MVC不同的是,view层和model层不再相互可知,完全的耦合,presenter充当了桥梁的作用,用于操作view层发出的事件传递到presenter层中,presenter层去操作model层,并将数据返回给view层。

优缺点

        优点

        1model和view分离,可以做到修改view而不影响model,解决了两者耦合问题

        2.更加高效的使用model,view不依赖model,view能做到对业务的完全分离

        缺点

        presenter中除了处理业务逻辑,还需处理view-model两层的协议,同样会导致presenter层的代码臃肿

MVVM

概述

        MVVM:Model-View-ViewModel

        MVVM模式图如下:

         MVVM相对MVP来说将presenter层换成了viewmodel层,并且view层和view model层是相互绑定的关系,也就是当viewmodel层更新时,view层会相应的变动ui。

优缺点

        优点

        1.view可以独立于model进行变化和修改,一个viewmodel可以绑定在不同的view上,降低耦合,增加复用。

        2.不仅解决model和view耦合问题,同时解决了维护两者映射关系的大量繁杂代码和DOM操作代码,提高开发效率、可读性,并保持优越的性能表现

        缺点

        1.不适用于简单的项目

        2.大型的项目视图状态较多时构建和维护成本大

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值