一. 目前最为流行的目录结构是: <先根据模块后根据功能> 的文件目录结构

优点: 模块分明, 并且开发和维护时方便查阅各个功能

缺点: 可能会出现模块内随意建立文件夹, 导致局部逻辑紊乱

二. 我项目上采用的目录结构是: <先根据功能后根据模块>

优点: 功能层次分明,不会出现乱建文件夹的情况.

缺点: 在开发和维护时不方便根据模块来查阅各个功能

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即时聊天服务

    分享组件服务

    日志组件服务

    系统环境组件服务

    地图_位置服务

    数据库服务

    权限组件服务

    ...

    

iOS项目目录结构的更多相关文章

  1. MVVM 模式下iOS项目目录结构详细说明

    ➠更多技术干货请戳:听云博客 我们在做项目的时候,会经常用到各种设计模式,最常见的要数 MVC (模型,视图,控制器)了.但是,今天我们要说的是另一种设计模式——MVVM. 所以 MVVM 到底是什么 ...

  2. 分享我设计的iOS项目目录结构

    公司新项目就要着手研发了,希望能为这个项目多准备点知识.回想自己做过的项目,目录结构的划分总不如我的心意,有些目录命名不规范导致表达不明确,有些目录因为不具有代表性,导致在实际中不能充分发挥作用,导致 ...

  3. IOS项目目录结构和开发流程

    网上相关的资源不多,开源的且质量还不错的iOS项目也是少之又少,最近正好跟同事合作了一个iOS项目,来说说自己的一些想法.   目录结构 AppDelegate Models Macro Genera ...

  4. iOS开发总结——项目目录结构

    1.前言 清晰的项目目录结构有利于项目的开发,同时也是软件架构的一部分,所以,项目开发之初搭建项目的目录结构很重要.刚转iOS时,自己并不知道如何搭建App的项目目录,在参与开发两个应用后,结合Web ...

  5. Laravel项目目录结构说明

    Laravel项目目录结构说明: |- vendor 目录包含你的 Composer 依赖模块及laravel框架. |- bootstrap 目录包含几个框架启动跟自动加载配置的文件. |- app ...

  6. 1-5Tomcat 目录结构 和 web项目目录结构

    对应我的安装路径: web项目目录结构

  7. Android开发学习之路--Android Studio项目目录结构简介

    既然已经搭建好环境了,那就对Android Studio中项目目录结构做个简单的了解了,这里以最简单的Hello工程为例子,新建好工程后看如下三个工程视图: 1.Android工程 manifests ...

  8. 【Android Studio安装部署系列】三、Android Studio项目目录结构

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 简单介绍下Android studio新建项目的目录结构. 常用项目结构类型 在Android Studio中,提供了以下几种项目结 ...

  9. vue项目目录结构

    VUE项目目录结构 如上图所示,我们的目录结构就是这样的了. 目录/文件 说明 build 这个是我们最终发布的时候会把代码发布在这里,在开发阶段,我们基本不用管. config 配置目录,默认配置没 ...

随机推荐

  1. PCA 主成分分析(Principal components analysis )

    问题 1. 比如拿到一个汽车的样本,里面既有以“千米/每小时”度量的最大速度特征,也有“英里/小时”的最大速度特征,显然这两个特征有一个多余. 2. 拿到一个数学系的本科生期末考试成绩单,里面有三列, ...

  2. [转发]Dumps of system information with Apple computers

    In this article, I gathered up all the dumps, who found. If you see something new table will be upda ...

  3. 会话控制:session与cookie

    我们在浏览网站时,访问的每一个web页面都需要使用"http协议"实现.而HTTP协议是无状态协议,就是说HTTP协议没有一个内建机制来维护两个事务之间的状态.当一个用户请求一个页 ...

  4. c++ operator

    这篇博文是以前很久写的,贴在我的早期一个blog中,今天google一下,发现还真有不少人转载,可惜并不注明出处.那时觉得operator比较好玩.C++有时它的确是个耐玩的东东.operator它有 ...

  5. 自然语言15.1_Part of Speech Tagging 词性标注

    QQ:231469242 欢迎喜欢nltk朋友交流 https://en.wikipedia.org/wiki/Part-of-speech_tagging In corpus linguistics ...

  6. $this->display输出模板

    1.public function index(){ $this->display() } // 默认输出的是index.html模板 2.public function index(){ $t ...

  7. $().index() 两种用法

    第一种:获得第一个 p 元素的名称和值: $(this).index() <script type="text/javascript"> $(document).rea ...

  8. 使用Topshelf 开发windows服务

    在业务系统中,我们为了调度一些自动执行的任务或从队列中消费一些消息,所以基本上都会涉及到后台服务的开发.如果用windows service开发,非常不爽的一件事就是:调试相对麻烦,而且你还需要了解 ...

  9. List.Sort用法

    treeList.Sort((x, y) => x.SortIndex < y.SortIndex ? -1 : 0);

  10. spring mvc3的注解@ResponseBody 自动返回jason

    第三种利用spring mvc3的注解@ResponseBody 例如: @ResponseBody @RequestMapping("/list") public List< ...