iOS项目结构划分

|—MyProject
    |—ignore-folder // 放置不想同步到代码服务器上的内容,通常包括一些体积太大、经常变动、对项目运行影响不大的文件。需要在该目录下添加 .gitignore 对本目录做一些设置。
        |—readme.log // 因为 ignore-folder 目录下的内容都是不会同步到代码服务器上的,所以最好加一个 log 文件记录一下你在该目录的操作。
        |—3rdparty // 比如,一些不能用 CocoaPods 管理也不想同步到代码服务器上的第三方库。
        |—data // 比如,一些经常会变动的、自己的测试数据文件。
    |—Utility // 自己实现的一些通用性较好的功能代码,这些代码有比较好的接口且与本项目不存在耦合,可直接复用于其他项目。
    |—Common //  本项目的一些全局性代码,这些代码通常与本项目的业务逻辑存在一些耦合,所以不放在 Utility 目录中。
        |-各种常量, 宏定义.
    |—Feature           //  本项目的功能模块目录,该目录下将项目的功能划分为多个模块,每个模块穿透 MVC.
        |—Base          //  定义本项目中各种 Controller、View、Model 的基础类或基础接口。
            |—Controller  // 基类控制器
            |—View        // 基类View
            |-Dao           //  基类.映射数据库Model
            |-Service       //  基类业务逻辑
        |—Main
            |—Controller
            |—View
            |-Dao           //  网络层.映射数据库Model
            |-Service       //  业务逻辑层.
        |—User
            |—Controller
            |—View
            |-Dao           //  网络层.映射数据库Model
            |-Service       //  业务逻辑层.
    |—Resource // 本项目的资源目录,放置图片、音频等资料。
        |—Image
        |—Sound
|—Pods // 采用 CocoaPods 管理的第三方库。

这是我们开发中常用的项目结构, 由于我们通讯层采用的是ICE, 一种跨平台的通讯技术.而ICE会自动完成生成对应的模型数据, 所以在我们的项目中很少说要手动的去操作模型这一块.所以我就把Model层细分为两层, 一层是Dao, 直接对应ICE对应的接口请求.Service是层是针对Dao层的业务逻辑的封装.

你可能感兴趣的:(iOS项目结构划分)