1.前言
清晰的項目目錄結構有利於項目的開發,同時也是軟件架構的一部分,所以,項目開發之初搭建項目的目錄結構很重要。剛轉iOS時,自己並不知道如何搭建App的項目目錄,在參與開發兩個應用后,結合Web開發的目錄習慣我整理了自己的目錄結構。分享一下,歡迎交流。
2.我的項目目錄結構
項目目錄 ├── ThirdLib(三方庫) │ ├── SDWebImage │ └── AFNetworking ├── Framework(自己封裝的類庫) ├── General(通用類目錄) │ ├── Class(通用的類,比如自定義父類) │ └── Helper(通用輔助方法) ├── Main(程序單一入口,僅放AppDelegate區分其他文件) │ ├── AppDelegate.h │ └── AppDelegate.m ├── Model(數據模型類目錄) │ ├── Macro(宏定義目錄) │ ├── BLL(業務邏輯層目錄) │ ├── DAL(數據訪問層目錄) │ ├── Entity(自定義實體目錄) │ ├── Request(網絡請求類目錄) │ ├── Location(定位服務類目錄) │ └── Socket(Socket類目錄) ├── Module(功能模塊目錄) │ │ │ ├─── ModuleA │ │ ├── ViewControllerA.h(視圖控制器頭文件) │ │ └── ViewControllerA.m(視圖控制器m文件) │ ├── ModuleB │ ├── ModuleC │ ├── ModuleD │ └── ModuleE └── View(視圖類目錄) └── MyTestView
3.說明
1)項目目錄
項目程序文件根目錄,存放項目程序文件、資源文件等。
2)ThirdLib
第三方開源類庫,比如,SDWebImage、AFNetworking等。
3)Framework
自己封裝的類庫。
4)General
通用類目錄,存放自定義的視圖控制器基類等。
5)Main
程序單一入口,僅放AppDelegate區分其他文件
6)Model
數據模型類文件目錄。主要用於存放自定義的數據模型類。
子目錄:
I)Macro(宏定義目錄)
我把自己的很多宏定義,包括色彩字體等樣式宏定義、業務邏輯宏定義、網絡請求、Core Data的宏定義等頭文件放在該目錄下。命名規則為XxxMacro.h。這樣在頭文件引入的時候很清楚我要引入哪些宏定義,以避免重復引用。(雖然import已經避免了編譯文件時重復引入文件,但是強迫症患者。。你懂的)
II)BLL(業務邏輯層目錄)
業務邏輯層(Business Logic Layer)目錄主要存放的是項目的業務邏輯處理類及分類。按照項目功能需求來封裝業務邏輯。具體命名依所實現的功能業務來命名。
III)DAL(數據訪問層目錄)
數據訪問層目錄 主要存放項目.xcdatamodeld文件和封裝的Core Data接口類。
IV)Entity(自定義實體目錄)
數據模型實體類目錄。存放例如User等數據模型的類文件。
V)Request(網絡請求類目錄)
存放網絡請求的類目錄。
VI)Location(定位服務類目錄)
存放定位服務類。
VII) Socket(Socket類目錄)
存放Socket類。
7)Module
功能模塊類目錄,按照項目的功能模塊創建子目錄。每個子目錄下存放該模塊的視圖控制器文件。
8)View
視圖文件類目錄。存放視圖文件。比如自己封裝的視圖控件,封裝的cell等。
4.小結
1)吐槽一下博客園的文檔編輯。編寫HTML模式的時候,我無意間點了取消。。。然后全都木有了。。。都木有了。。。木有了。。。有了。。。了。。。!!!!!!妹啊!!為什么取消鍵在右邊啊喂!!!!然后command+z。。。頁面就全部崩潰了。。。。面就全部崩潰了。。。。就全部崩潰了。。。。全部崩潰了。。。。部崩潰了。。崩潰了。。。。潰了。。。。了。。。。!!!!!!另外,博客輸入文本的插件內容區域高度太小了。。。用起來很不爽啊!!!!!!體驗太差!差評
2)言歸正傳,我的目錄結構是綜合了之前的開發經驗和我leader的開發習慣以及網上的目錄結構整理的,並不一定適用於其他項目。歡迎留言交流,謝謝~