一. 项目结构意义
-
项目结构是软件项目的门面担当,它不仅是软件功能模块的直观体现,也是项目可维护性、可扩展性的掌舵者。
-
层次清晰的项目结构不仅可以实现模块间解耦,还可以提升新手熟悉项目的效率
二. 如何设计项目结构
iOS项目结构设计大致可分为功能模块目录及资源配置文件目录:功能模块目录承载项目具体功能业务,如程序入口、通用工具栏等;资源配置目录存在项目的资源文件,如图片资源、字体库、项目配置文件等。如下图所示
- 对于iOS项目来说,一级目录可以分为Classes和Resources两个文目录:
1. Classes目录
- Classes目录下包含:AppDelegate、Application、Networking、Utils、Lib、Business等文件目录如下图
- 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等文件及目录如下图