关于MVC架构的理解

作者: captainGao | 来源:发表于2018-02-22 12:41 被阅读386次

今天是开工第一天,首先呢,先祝广大的简友新春快乐!这也是公司版本迭代的空闲期间,没事的时候可以看(chui)看(chui)简(niu)书(b).

下面就来说下项目架构的理解,以下都是自己的理解,还请各路大神高抬贵手,毕竟和气生财,新年开工第一天,请让我以后写简书更有激情.

在iOS开发中,多数的项目都是传统的MVC模式,在我看来不管是什么结构的项目,都是由MVC衍生而来的.比如MVVM,MVP,和组件化开发,本文我们主要还是说下关于MVC吧!毕竟现在我们的项目还是MVC结构的,只是对于整体结构进行了进一步的修改,修改后的结构有点类似于MVP.下面废话少说,直接看图


screen_shot_01@2x.png

在这个架构中,我把每一个模块都会建立一个ViewController,Controller,Model,Network.

ViewController : 继承于UIViewController就是我们MVC架构中的C,但是在这里虽然它继承与UIViewController,但是我们把它看做是一个视图类,相当于View.
Controller: 是控制层,继承于NSObject.是一个单利类.把controller看做是控制器,所有的逻辑层,网络请求和跳转页面都放到这里.
Model: model还是那个model,大家熟悉的model.(但是c已经不是那个c了)
Network: 会英文的童鞋都应该知道,这肯定是网络请求,把每个模块的网络请求都单独写到这里面.

    这时候有的童鞋就会问,刚刚那个controller里面不就有网络请求吗,为什么又会多出来一个network呢?!

这个network的作用就是把所有的网络请求的参数都用一个方法传到这个类里面,然后在controller里面调用这个network类中的方法,在controller里面就能够获取到网络层返回的数据了.如图:


screen_shot_02@2x.png
screen_shot_03@2x.png
    这就可以说明为什么把网络请求再次区分一个类了吧!

controller是控制层,里面除了有网络请求,数据处理还会有关于跳转到某个页面的方法,如上图 screen_shot_03@2x.png.

这么做的主要原因就是:由于现在的项目的逻辑,需要跳转到同一个控制器的地方比较多,在传统的MVC架构中,每当我们从不同的控制器跳转到同一个控制器的时候,都会写一些重复的代码,但是如果我们一旦进行修改的时候我们就会发现,需要修改的地方太多了,代码的复用性特别低.如果我们采取这个方法,当我们在A,C,D不同的控制器中跳转到B控制器的时候,我们只需要调用B所在的Module的Controller中的push到B的方法即可,这样我们便提高了代码的复用性和可维护性.

大家觉得相比于MVC,这种对MVC的优化怎么样呢?

    其实看完之后,我觉得大家的第一个反应就是,单利啊!单利会始终存在于app的生命周期中啊!会造成内存消耗啊!为什么不把每个Controller都当成每个控制器的一个变量呢?

个人觉得如果单利中没有过多的成员变量等,那么就不会造成太大的内存消耗.所以大家可以放心大胆的试试.

最后附上demo地址: https://github.com/Chris-Gaptain/CCStructDemo

好了,就到这里吧!喜欢的童鞋就赞下吧!不喜欢的童鞋只需要您的微微一笑!
希望大家能对我自己的理解给出宝贵意见(勿喷)

相关文章

  • 关于MVC架构的理解

    今天是开工第一天,首先呢,先祝广大的简友新春快乐!这也是公司版本迭代的空闲期间,没事的时候可以看(chui)看(c...

  • 安卓MVP架构分析

    在我们讨论MVP架构之前,我们要先了解理解一下MVC架构。 MVC架构以及MVC结构在安卓中的弊端 MVC架构指M...

  • ChainDesk:MVC是什么-合理的设计我们的应用

    作者:ChainDesk韩小东 目标 1.理解 MVC 架构的概念 2.能够在项目中应用 MVC 架构模式 任务实...

  • Spring Boot Web MVC 核心

    理解Spring Web MVC架构 基础架构:Servlet 特点请求/响应式(Request/Response...

  • iOS中MVVM架构 浅显理解

    MVVM 它和常见又熟悉的MVC比较类似,我把这种架构模式理解为MVC的演变和优化.关于他们的对比,我想看过一些文...

  • Java ---理解MVC架构

    之间的文章,我们主要是介绍了jsp的相关语法操作,我们可以通过请求某个jsp页面,然后由相对应的servlet实例...

  • iOS 理解架构

    基础架构MVC 关于MVC,斯坦福公开课那个白胡子老头的讲解已经很到位了。 MVC存在的问题:Controller...

  • iOS:RAC之RacSignal

    理解 RAC框架很强大,之前使用的mvc都是通过赋值然后实现页面的刷新,mvc架构对controller层比较重,...

  • angular

    关于angular中 MVC / MVVM / MVP的理解 MVC 全称全称Model(模型)-View(视图...

  • SpringMVC知识 day01 SpringMVC概述&入门

    一、SpringMVC 的基本概念 1.1 关于三层架构和 MVC 1.1.1 三层架构: 我们的开发架构一般...

网友评论

    本文标题:关于MVC架构的理解

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