美文网首页
(1)iOS架构之MVC

(1)iOS架构之MVC

作者: While1_ | 来源:发表于2019-01-23 15:55 被阅读0次

    关于iOS架构这几年文章也太多了,在这里只是为了记录并分享一下自己做iOS开发的的一些知识和见解。可能有很多不足的地方,有幸能看到的iOSer见笑了。

    首先说一下什么是MVC,MVC是Model(模型)-View(视图)-Controller(控制器)的简称,将数据,视图显示,和业务逻辑分开来,这样再对界面布局进行改进的时候,不需要对业务逻辑进行修改。

    MVC

    一张很经典的MVC间的关系图。

    model和controller之间通过通知或者KVO观察者模式进行通信。

    controller和view之间能直接进行同性,controller是view的代理,数据源,能对view进行操作改变,view通过action告诉controller触发了什么事件。

    model和view之间永远不能相互通信。

    但是实际开发中,很多人认为的MVC却不是这样的,刚进入工作的时候,包括我,认为MVC就只是在文件目录结构上分出Model,View,Controller就是MVC架构了。但是实际上View层做的工作全部都在Controller中,而实际上的View层目录中只是放了一些自定义控件。

    这根本就算不上是MVC!基本上可以说是只有一个很轻量的承载接受数据的model,然后跟一个负责处理了其他所有事情的及其臃肿的controller。这样的代码拉下来,在稍微复杂的页面,基本controller中的代码量都是好几千行。在加上没有注释,那可能真是太痛苦了。

    所以我觉得我认为的MVC,是应该把View真正的拆分出来。

    model

    model依然是起到一个数据承载的作用。

    view

    view 中只负责数据的展示,不会跟model牵扯到一丝一毫的关系,所有需要更新的UI都通过view暴露出来给controller的接口去刷新。这样就真正的做到了把view独立出来,所有的布局相关的都在view中。

    controller

    controller就负责业务逻辑的处理,和通过view暴露出来的接口,提供其需要展示的内容,而不是整个model都甩给view。

    这大概就是我的理解。

    Demo在这里

    相关文章

      网友评论

          本文标题:(1)iOS架构之MVC

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