美文网首页
iOS 理解架构

iOS 理解架构

作者: UncleFool | 来源:发表于2018-05-15 14:12 被阅读3次

基础架构MVC

关于MVC,斯坦福公开课那个白胡子老头的讲解已经很到位了。

MVC存在的问题:Controller过于臃肿,进而导致:

  • View和Model耦合,耦合度高所以不利于复用;
  • 不易测试;
  • 不易维护,牵一发而动全身;
    职责不明确:谁应该来负责网络请求?Model 还是 Controller ?

解决方案:

  • 局部方案:分离协议,加入设计模式;
  • 架构级方案:统一标准,使用MV(X)架构。

目前已知架构:MVVM、MVP、VIPER。

研究架构目的:使代码易复用、易拓展、易维护、易测试。

  • MVVM据说门槛比较高,属于响应式编程,要结合RAC使用。
  • MVP 解耦View和Model 面向协议编程。
  • VIPER,什么鬼第一次听。
  • 猿题库的MVC+VM架构。

以上均是MVC的变种架构,即在MVC的基础上再分离,再抽象,再封装。

MVP:MVP全称Model-View-Presenter,其中包含三个角色:Model、View和Presenter。

  • Model:一般是对通过网络获取的JSON数据进行转换处理封装的数据模型类,或是对从数据库中取得的数据封装的数据模型类。(Presenter通过调用Model进行交互)
  • View:View可以是ViewController或View。Presenter通过向View传Model数据进行交互。
  • Presenter:作为Model和View的中间人,从Model中获取数据后传给View,使得View和Model没有耦合。

(很多时候之所以不懂根本原因是概念模糊不清,所以正确理解概念非常重要。但是看博客经常看到水文,很有可能看了导致走了弯路,所以要多看比较,分析出正确概念。另外,有时候理解一个概念需要时间,不是一步到位,而是不断修正的过程。)

MVP主要解决了View和Model之间耦合的问题。耦合即View聚合和Model。缺点是,代码会增加。

总结:MV(X)架构不过是在MVC的基础上再分层,分层的目的是:在代码复杂度可控(不要失去易读性,否则同事阅读代码时也很不方便)的情况下,尽可能的进行拆分,使得代码更具复用性、易测试和易拓展。拆分要控制好粒度,不要有太多胶水代码。

相关文章

  • iOS架构模式——MV(X)的理解与实战

    iOS架构模式——MV(X)的理解与实战 iOS架构模式——MV(X)的理解与实战

  • iOS 理解架构

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

  • iOS架构

    这里说几个概念:iOS系统框架:iOS系统架构:iOS架构:iOS 代码架构:iOS架构师:iOS架构设计: iO...

  • iOS架构

    iOS架构iOS架构

  • 【IOS开发进阶系列】iOS系统架构专题

    1 IOS系统架构 1.1 IOS系统架构 1.1.1 iOS的系统架构 iOS的系统架构分为四个层次:核心操作系...

  • iOS应用架构谈 开篇

    iOS应用架构谈 开篇 iOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网...

  • iOS 架构谈:剖析 Uber 的 RIB 架构

    iOS 架构谈:剖析 Uber 的 RIB 架构iOS 架构谈:剖析 Uber 的 RIB 架构

  • iOS应用架构谈 开篇

    iOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案iOS应用架构谈 网络层设计方案iOS应用架构...

  • iOS应用架构谈 开篇[转]

    iOS应用架构谈 开篇iOS应用架构谈 view层的组织和调用方案iOS应用架构谈 网络层设计方案iOS应用架构谈...

  • 2019-03-12

    近期iOS 学习任务: 1.iOS 架构学习 iOS应用架构谈 开篇 iOS应用架构谈 view层的组织和调用方案...

网友评论

      本文标题:iOS 理解架构

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