美文网首页MVVM2017iOS架构与组件化
对于iOS架构模式之争的一些思考

对于iOS架构模式之争的一些思考

作者: 王隆帅 | 来源:发表于2017-07-04 14:19 被阅读6037次

这里写这么一篇文章不是为了激化这个争论,只是谈谈自己的个人想法,望各路大神高抬贵手,大家和气生财。

之前写过一篇《iOS MVVM+RAC 从框架到实战》,这篇文章的评论有褒有贬,自己当时也是因为经验所限,虽说只是写了个引子,但是能对一些新人有所启发,自己也会很开心的,虽然各路大神都觉得很low吧。

这里,我想说不要局限于MVC、MVVM、MVP等等一些架构模式之中,万变不离其宗,真正适用于项目的架构才是最好的架构。

在我看来,无论哪种架构,都是以MVC为基准,然后不断的调整重构、不断的划分职责,细化得来的。所以,能够掌握如何划分职责,将视图、逻辑、数据三者连接起来,易用并方便维护,那么就可以了,无所谓什么模式。

在真正的项目中,哪有这么纯粹的项目,这只是一种划分代码的思想,运用得当才能更匹配项目,让项目更有质量有速度的编写下去!每个正式项目的具体架构表现绝对是各种设计模式辅助,划分代码的思想在各个地方均有体现,而不是仅仅关注的UI层数据逻辑的处理。

关于《iOS MVVM+RAC 从框架到实战》中最后一小节中干掉基类的做法(Runtime + category),已经有所实现,也按照自己想法,在一切从简的基础上,写了一个新的列表展示,有兴趣的同学可以看一眼,这里就不介绍了,毕竟大神众多,否则文章又变得又臭又长了...

不完全Demo地址

主要参考项目中的 CodeStandard文件夹(测试代码) 及 GeneralBase文件夹(UI的扩展及Model相关的基类)

喜欢的话就点个赞支持一下,不喜欢的话那就抱歉浪费了您的时间,您笑笑也就过去了,和气生财嘛!

相关文章

网友评论

  • 没能唱给你的歌曲:博主干掉基类的做法以及对设计模式的理解,跟我看到的casa大帝的 非常相似,博主是自己想到的,还是也是借鉴了casa大帝的?
    王隆帅:学习加借鉴,casa大神对架构的理解确实值得我们学习,借鉴:blush:
  • 秀_ba75:能分享就不错了,非常喜欢
  • liuyanhongwl:已实践本篇文章去掉基类的方式,遇到很多坑,兜兜转转还是使用了基类。
    比如:
    1. 想在所有自定义的vc中自定义navigationBar,用分类会把所有的vc都创建自定义的bar,包括tabBarVC和naviVC,只能添加东西判断。
    2. 想在本类的自定义的viewdidload中,[super viewdidload];语句之后,其他语句之前执行,用分类和运行时也没找到能做到的放法。
    liuyanhongwl:3. 自定义View,重写initWithFrame:方法时,会在[super initWithFrame:]语句后走一遍交换的方法,在该重写initWithFrame:方法执行完成时再走一遍交换的方法,造成会走两次addSubviews/addLayouts/bindViewModel,可能会出现添加重复界面的情况。
  • liuyanhongwl:demo里面Model和ViewModel的基类没有干掉,是因为oc没有提供相应的基类,所以自己创建吗?这个理由是我自己隐约觉得的,想知道作者的看法
  • 笨驴爱吃胡萝卜:对于demo 无法允许这个事情,表示不能理解
  • 徐小鸿同学:看了你的很多篇博客 很想将你的框架融入到我们的团队中!但是在codeStandard 中的Model 跟ViewModel 的多个类看有点懵逼 望指教!
    笨驴爱吃胡萝卜:@一一雪液一一 哈哈,团队里面就没有人会的,还是大家集体痛苦了半个月
    一一雪液一一:@笨驴爱吃胡萝卜 为啥啊..那么难学?还是你们不肯技术培训....:smirk:
    笨驴爱吃胡萝卜:我们公司项目是rac 基础搭建,结果,来一个走一个
  • 1305ff7541af:可以, 适合很重要
  • 小嘴冰凉别乱亲:你就是大神,坚持走自己的路,向你学习
  • 怀念裸奔的童年:关注你很久了,一直都觉得你是大神,希望多分享一些干货:smile:向你学习
    王隆帅:感谢关注!:smirk: 共同成长!
  • 谁的青春不迷茫:至于上一篇文章的评论我也看了,我觉得没必要在意。技术本身就是要讨论的,作者也许会从讨论中收获,也许会生气挫败,但是不要影响你分享技术的热情和大胆分享的魄力。坚持下去,加油!
    谁的青春不迷茫:@王隆帅 嗯嗯
    王隆帅:@谁的青春不迷茫 真诚感谢!:kissing_heart:

本文标题:对于iOS架构模式之争的一些思考

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