MVC

作者: 小乔与周瑜 | 来源:发表于2020-09-26 19:51 被阅读0次

    架构前言:

         在面向对象程序设计中,一个架构的好坏标准我们经常已是否高内聚、低耦合的标准来评定的,这两个参数很大程度决定的你的程序的可重用性、移植性,在iOS中是否能够达到组件化的架构设计,这两个参数也是很重要的 ,架构的好坏也决定了你项目的生命周期。

         而架构体现出来的价值体现于不光是它的可重用性、移植性,让项目维护以及扩展更加轻松,从而节约时间成本,这也是体现架构的价值的因素。

         在 iOS开发中,无论是MVC架构,MVVM架,MVP架构, 之所以存在并且被大规模使用,说明自身就有其 价值,要学会找到最适合自己项目的架构,这片文章简单介绍MVC(Model View Controller)架构。

    MVC介绍

    这里是苹果官网的MVC介绍图 

    可以查看链接查看官网介绍

    地址:https://developer.apple.com/library/archive/documentation/General/Conceptual/DevPedia-CocoaCore/MVC.html

    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的标准模式,也是苹果推荐的一个用来组织代码的权威范式。

    相关文章

      网友评论

          本文标题:MVC

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