關(guān)于目錄結(jié)構(gòu)钥飞,真的是仁者見仁智者見智宣虾,沒有最好蓝厌,只有適合自己的 ??
在網(wǎng)上搜來搜去诞帐,大部分人使用的是以下兩種形式:
- 架構(gòu)模式
- 功能模塊
架構(gòu)模式
使用架構(gòu)模式(MVC / MVVM等 )劃分角雷,再用功能模塊來細分
1.主目錄結(jié)構(gòu)
-KLFoundationFrame
--AppDelegate // 程序入口
--Class // 業(yè)務(wù)模塊熬尺。
--FunctionModule // 功能模塊 賬號管理,支付管理等
--BasicModule // 基礎(chǔ)模塊
---Config // 初始化配置。包含宏定義文件谓罗,全局配置文件粱哼,全局常量文件
---Category // 類目。包含各種類的分類
---Utility // 工具類檩咱。HUD,AlertView等
---Vendors // 第三方庫揭措。部分需要修改或者不支持cocoapod的第三方的框架引入
--Resource // 資源。包含plist,image,html,bundle刻蚯,Localizable.strings等
-KLFoundationFrame Tests
-KLFoundationFrame UITests
-Products // 系統(tǒng)自動生成的.app所在文件夾
-Pods // 采用 CocoaPods 管理的第三方庫绊含。
2.架構(gòu)目錄結(jié)構(gòu)
-- Class
---Controller // MVVM的基類或者通用類
----Base
----Home
---Model
----Base
----Home
---View
----Base
----Home
---ViewModel
----Base
----Home
這種方式,我覺得太難找了
功能模塊
使用功能模塊劃分炊汹,在每個模塊里在用架構(gòu)模式(MVC / MVVM等)細分
1.主目錄結(jié)構(gòu)
-KLFoundationFrame
--AppDelegate // 程序入口
--Class // 業(yè)務(wù)模塊躬充。
--FunctionModule // 功能模塊
---Manager // 管理類。賬號管理等
---Utility // 工具類。HUD,AlertView等
--BasicModule // 基礎(chǔ)模塊
---Config // 初始化配置充甚。包含宏定義文件以政,全局配置文件,全局常量文件
---Category // 類目伴找。包含各種類的分類
---Vendors // 第三方庫盈蛮。部分需要修改或者不支持cocoapod的第三方的框架引入
--Resource // 資源。包含plist,image,html,bundle技矮,Localizable.strings等
-KLFoundationFrame Tests
-KLFoundationFrame UITests
-Products // 系統(tǒng)自動生成的.app所在文件夾
-Pods // 采用 CocoaPods 管理的第三方庫抖誉。
2.模塊目錄結(jié)構(gòu)
-- Class
---Base // MVVM的基類或者通用類
----Controller
----Model
----View
----ViewModel
---Home
----Controller
----Model
----View
----ViewModel
類推...
這是我一直在用的目錄結(jié)構(gòu)形式,個人感覺還不賴衰倦。
文件目錄結(jié)構(gòu)
文件目錄的排列順序如下袒炉,若沒有實現(xiàn)相對應(yīng)的種類,跳過順延下去樊零。
-.h
-- 文件注釋
-- #import // 導(dǎo)入類
-- NS_ENUM // 枚舉類
-- @protocol // 代理
-- @interface // 文件入口
-- @property // 屬性
-- methods // 方法
-.m
-- 文件注釋
-- #import // 導(dǎo)入類
-- #define // 宏定義
-- static // 靜態(tài)變量
-- @interface // 文件入口
-- @property // 屬性
-- @implementation // 實現(xiàn)
-- methods // 方法
文件規(guī)范
在實現(xiàn)文件 .m
文件中梳杏, 充斥著大量的代碼,為了便于維護淹接,也要制定統(tǒng)一的規(guī)范
-.m
--Lifecycle // 生命周期
--OverwriteSuperClass // 重寫父類
--Response Mehtods // 響應(yīng)方法(通知,Target等)
--Delegate // 代理方法
--Private Methods // 本類文件使用的方法,私有的
--Public Methods // 暴露給外界的接口
--Getters and Setters // 屬性的get叛溢、set方法塑悼,所有的屬性都通過 懶加載的形式來初始化!!!!!!!
哥們,都浪到這了楷掉,順手點個贊??唄~