美文网首页
iOS中的基本架构

iOS中的基本架构

作者: MrOreo | 来源:发表于2019-08-21 11:36 被阅读0次
input equal: output

背景

  • 近期在网上翻阅了大量的资料去查找iOS中架构的相关文章,但文章很少,大部分都是java相关的。虽然平台语言不一致,思想总归相同的。然而从代码结构方面,应用到iOS平台仍旧感觉有点怪怪的。
  • 当然也在网上找到了相关iOS架构资料,但是文章谈到架构优化的点都有自己的思考,自己拿过来应用也很难去考虑整体。因此无不感叹他们好牛逼,就想去探索一下他们达到这种程度的前置知识。
  • 看到里边涉及到的点,就去找了相关的书籍进行翻阅学习。其中主要看了两本书:HeadFirst 设计模式App架构设计。当再去看网上的其他文章、源码后,终于能够看透一些背后应用的思想。
  • 本文是关于 App架构设计 这本资料看完之后的总结,方便日后进行查看。
  • HeadFirst 设计模式,也会在之后的文章中进行总结,方便日后的查看。

本文按照自己的记忆点简单精简罗列一下本书中学习到的内容

常见架构

mvc: v -> c -> m
mvp: v -> c -> p -> m
mvvm: v -> c -> vm -> m
mvc+vs: v -> c -> vs -> m
可以看出:mvp,mvvm,mvcs都是在mvc的基础上进行扩展的。换句话说,他们是mvc的强化版本。

以一个view上的button举例:

1. mvc

action: -> v -> c -> m; m -> (notification) -> c -> (update) -> v
network/other moudle:是从c开始进行触发,然后后续的执行流程和action一样的。

  1. c持有v和m。而v和m之间又是相互独立的模块。
  2. 当点击v上button时,将点击方法传递到了c层进行响应;由于c拥有m,因此在c中调用更新m的方法;
  3. 当m中的内容发生变化时,c作为m层数据发生变化的监听者。c会收到发生变化的通知,然后在c层开始相应的通知方法;由于c拥有v,则在通知的响应方法中,去调用v中的方法,从而v将会得到更新。
    以下的几种模式,是从mvc演化而来,他们是在v和m中加入了自己的隔离层进行处理。

2. mvp:

action: v -> c(pro) -> (action最终转发到p层) -> p -> m; m -> (notification) -> p -> (更新c层的属性) -> c -> v

  1. p层持有c层和m层。
  2. c层是遵循某个协议pro。而pro中暴露的接口是v要展示的内容

3. mvvm

action: -> v -> c -> vm -> (update) -> m; m -> (notification1) -> vm -> (notification2) -> c -> (update) -> v

  1. c持有v和vm。vm持有m。
  2. vm的模块将为v层提供展示逻辑逻辑的接口。
  3. c层时刻监听vm中暴露属性的通知变更。
  4. 3也可以表述成:vm提供了变化的observable序列,供c层进行订阅,当subscribe到新的值后,c层进行更新v的数据。

4. mvc+vs

  1. viewstate中存储当前的状态信息
  2. 在mvc的基础上,时刻保持v中的状态信息,那些信息当前并没有去更新model。
  3. 将这些信息更新到viewstate中。
  4. 在view触发时,去将vs中的值更新到model中。

参考资料

相关文章

  • iOS中的基本架构

    背景 近期在网上翻阅了大量的资料去查找iOS中架构的相关文章,但文章很少,大部分都是java相关的。虽然平台语言不...

  • iOS MVVM架构总结

    参考:iOS 中MVC设计模式iOS MVVM架构iOS MVVM-框架介绍iOS 架构模式MVVM的实践总结iO...

  • 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基于UNIX系统,iOS的系统架构分为四层,由上到下一次为:可触摸层(Cocoa To...

  • 无标题文章

    # MVC ​框架的所有代码结构整合都是采用MVC的基础架构,这也是苹果iOS系统的基本架构。Controller...

  • iOS应用架构谈 开篇

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

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

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

  • iOS项目开发文档

    项目架构 一、基本配置 IDE工具:Xcode 开发语言:object-C iOS系统支持:iOS10.0+ iO...

网友评论

      本文标题:iOS中的基本架构

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