iOS关于开发模式的简单理解

2016-06-21  本文已影响0人  肌肉蚊子

  首先声明本人是菜鸟一枚,老鸟们就手下留情放过我这个菜鸟,讲的不对的地方请多多谅解,欢迎交流加Q2401911560;

  前几天总监跟我讲我们APP的代码一点都不规范,小公司当然没有那么多代码规范,让我想个办法,来进行代码抽离,也就是进行所谓的架构,我也在网上看了不少的关于架构的好多东西,这些东西看着很吊的样子,我自然是看不得特别的懂,所以也是一知半解的,只能根据我自己理解的逻辑来进行讲解所谓的架构;

    好了,不费话了,直接开始讲我们APP的架构,我们早期的架构是基于MVC的架构,后来演变成了MVC,MVP,MVVM的混合架构,万变不离其宗,所有的架构都是MVC的基础上建立的;

    MVC

   苹果最基础的架构模式,MVC我就不多讲了,大家基本上都懂,不懂的话只能说你还没有入门,我相信我这样的菜鸟都懂MVC,相信你们也都懂;

    MVP

    M : 逻辑Model层

    V : 视图层

    P : protocol协议层

    Model层类似于MVVM的ViewModel,主要负责存储抽象逻辑数据,另外Model层主还有部分工作实现对应的协议层协议,提供协议对应的各种属性以及服务。Model经过协议层抽象约束,最后Model被抽象成具有统一抽象逻辑的业务场景,最终Model层在讲数据交付整个MVC结构绘制展示的时间,我们可以按照同一套抽象的逻辑标准去执行。

     我觉得我们公司的MVP架构不算是真正意义的MVP,我们只是把协议层的内容,部分的抽取出来,生成一个对象进行所谓的遵守协议,完成V视图层的数据的更改和更新;

     MVVM

     Model-View-ViewModel所谓的MVVM的架构,这个架构最主要的内容,我个人认为是在ViewModel中,在这里面更新了UI的布局,通过VM来通知控制器和View来进行数据的更新和界面的修改;

      view Model是一个放置用户输入验证逻辑,视图显示逻辑,发起网络请求和其他各种各样的代码的极好的地方。有一件事情不应归入view Model,那就是任何视图本身的引用。view Model的概念同时适用于于iOS和OS X。(换句话说,不要在view Model中使用 #import UIKit.h)

       由于展示逻辑(presentation logic)放在了view Model中(比如Model的值映射到一个格式化的字符串),视图控制器本身就会不再臃肿。当你开始使用MVVM的最好方式是,可以先将一小部分逻辑放入视图模型,然后当你逐渐习惯于使用这个范式的时候再迁移更多的逻辑到视图模型中。

上一篇 下一篇

猜你喜欢

热点阅读