iOS 中小型App 通用项目架构方案
· 27 min read
本文探讨一种 iOS App 通用项目的架构设计方案,旨在针对中小型的 App 的需求。
2. 前言
App 架构是软件设计的一个分支,它关心如何设计一个 App 的结构。具体来说,它关注于两个 方面:如何将 App 分解为不 同的接口和概念层次部件,以及这些部件之间和自身的不同操作中 所使用的控制流和数据流路径。
我们通常使用简单的框图来解释 App 的架构。比如,Apple 的 MVC 模式可以通过 model、 view 和 controller 三层结构来描述。
上面框图中的模块展示了这个模式中不同名字的三个层次。在一个 MVC 项目中,绝大部分的代 码都会落到其中某个层上。箭头表示了这些层进行连接的方式。
但是,这种简单的框图几乎无法解释在实践中模式的操作方式。这是因为在实际的 App 架构中, 部件的构建有非常多的可能性。事件流在层中穿梭的方式是什么?部件之间是否应该在编译期间或者运行时持有对方? 要怎么读取和修改不同部件中的数据?以及状态的变更应该以哪条路径在 App 中穿行?
2.1 传统思路
在最高的层级上,App 架构其实就是一套分类,App 中不同的部件会被归纳到某个类型中去。 在本文中,我们将这些不同的种类叫做层次:一个层次指的是,遵循一些基本规则并负责特定功能的接口和其他代码的集合。
基于设计模式六大原则之一的单一职责原则,可以简单的将系统划分为业务层,基础层,底层容器层,OS 层等等,以便于维护和扩展。
不管什么 App,我们都可以按照分层思路来设计架构,如下图所示: