一. 目前最为流行的目录结构是: <先根据模块后根据功能> 的文件目录结构
优点: 模块分明, 并且开发和维护时方便查阅各个功能
缺点: 可能会出现模块内随意建立文件夹, 导致局部逻辑紊乱
二. 我项目上采用的目录结构是: <先根据功能后根据模块>
优点: 功能层次分明,不会出现乱建文件夹的情况.
缺点: 在开发和维护时不方便根据模块来查阅各个功能
iOS <先根据功能后根据模块>的工程目录
- Generals (可重用可拓展的, 原则上可以在任何项目上使用的类目录)
- Controllers (可重用的控制器)
- Views (可重用的视图)
- Categories (可重用的分类)
- Services (可重用可拓展的 数据服务类)
- Logger (日志类)
- Resources (项目上的资源,包括声音文件,图片,文档等等)
- Images (因为images文件目录存放的图片较多, 建议分模块)
商品模块
订单模块
- Plist (plist文件)
- Macros (存放项目上的宏定义, 只存放全局定义)
BaseConstants.h (任务程序都需要的公共宏定义)
ApiConstants.h (网络请求接口宏定义, 一般存放网络请求接口名, 请求连接 等宏定义)
NotificationConstants.h (通知名宏定义)
AppConstants.h (App本身的宏定义, 第三方库的公钥和私钥宏定义)
EnumConstants.h (业务相关的枚举宏定义)
- Models (存放项目上的模型类, 一般要分模块)
- 商品模块
- DAO (数据库访问)
GoodsModelDAO.h (商品模型数据库访问)
GoodsModel.h (商品模型类)
- 订单模块
OrderModel.h (订单模型类)
- Vendors (存放项目上所有第三方库, 以及本公司自己封装的库)
- OurLibraries
HbbDataFormatFramework.framework (本公司自己的数据格式转化框架)
- OtherLibraries
AFNetworking (网络请求库)
- Helpers (存放项目项目上的帮助类,但切记不要轻易使用单例模式)
- image (图片相关)
- APGroupImageUtil.h (群图片合成类)
- APMultiDownloader (多图片下载器)
- Sections (存放项目本身的代码)
- Views (存放项目上各个模块商的视图, 类数量较多,建议分模块文件夹)
- GoodsManageModule (商品管理模块)
GoodsShowCell.h (商品展示单元格视图)
- ExportOrderModule (出货单模块)
OrderDetailCell.h (订单明细单元格视图)
- Controllers
- GoodsManageModule (商品管理模块)
GoodsManageMainVC.h (商品管理入口控制器)
- ExportOrderModule (出货单模块)
ExportOrderMainVC.h (出货单模块入口控制器)
- DataServices (数据服务类,建议分模块文件夹)
- GoodsManageModule (商品管理模块)
- GoodsManageDataService.h (商品管理数据服务类)
- GetGoodsInfoDataService.h (获取商品数据服务器, 一个模块有多个数据服务类, 切记数据服务类不可以使用单例)
- ExportOrderModule (出货单模块)
- ExportOrderModuleDataService.h (出货单管理数据服务类)
- DAO (数据库访问, 如果本地数据库访问的操作较多则需要有单独的文件夹, 一般可以不用)
GoodsModelDAO.h (商品模型数据库访问类)
- LowLevelService (底层服务)
图片组件服务
IM即时聊天服务
分享组件服务
日志组件服务
系统环境组件服务
地图_位置服务
数据库服务
权限组件服务
...