MVC

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

上一篇下一篇

猜你喜欢

热点阅读