iOS架构设计系列-项目结构设计

4,145 阅读2分钟

一. 项目结构意义

  • 项目结构是软件项目的门面担当,它不仅是软件功能模块的直观体现,也是项目可维护性、可扩展性的掌舵者。

  • 层次清晰的项目结构不仅可以实现模块间解耦,还可以提升新手熟悉项目的效率

二. 如何设计项目结构

iOS项目结构设计大致可分为功能模块目录及资源配置文件目录:功能模块目录承载项目具体功能业务,如程序入口、通用工具栏等;资源配置目录存在项目的资源文件,如图片资源、字体库、项目配置文件等。如下图所示

iOS工程目录.png

WX20210424-092952@2x.png

  • 对于iOS项目来说,一级目录可以分为Classes和Resources两个文目录:

1. Classes目录

  • Classes目录下包含:AppDelegate、Application、Networking、Utils、Lib、Business等文件目录如下图

WX20210424-093029@2x.png

WX20210424-093106@2x.png

  • AppDelegate存放程序入口文件
  • Application存放应用全局管理类(Manager),程序入口加载的TabBarController等
  • 应用全局管理类(Manager)存在项目中通用管理类文件,例如单例等
  • Business 存放具体功能业务模块文件目录(例如Home,Mine,Login业务模块目录),以及网络业务层文件目录(Networking)等
  • Home(首页)功能模块目录下存在本功能具体业务文件目录,又可分为View(数据展示者)、Model(数据持有者,存储数据)、ViewModel(数据加工者,获取并加工数据)、Controller(数据协调者)、SubPages(子系统功能业务)等文件目录
  • ViewModel目录还可以细分为:BNHomeViewModel(数据请求业务)、BNHomeRequestManager(模块网络请求类)、BNHomeSegueManager(模块内部页面跳转类)等文件
  • Utils存放工具类,如Categories(扩展功能的分类)、EmptyView(缺省页)、Constant(常量,例如通知常量,第三方APPId常量等)等
  • Lib存放第三方库等

2. Resources目录

  • Resources目录下包含:Assets、Info.plist、pch等文件及目录如下图

WX20210424-093132@2x.png