我新設計的目錄結構數據庫
Interface(用戶接口相關。包含各個功能模塊)網絡
Resources(資源型文件目錄,如數據圖片,plist)工具
Operation(主要的操做類,如網絡請求操做,數據庫操做,操做工具等)測試
config(宏定義和const等可修改的配置文件)spa
AppDelegate(這個目錄下放的是AppDelegate.h(.m)文件)設計
Vendors(第三方組件)orm
這樣劃分,名稱語義比較清晰,讓人一眼看上去就知道各個目錄的主要職責,方便不一樣功能模塊的同事進行開發測試工做,並且具備表明性,能知足新功能開發的變化等擴展須要。接口
interface(用戶接口相關。按照功能模塊劃分子目錄MVC)圖片
|-功能模塊1(功能模塊目錄)ci
|-|-Models
|-|-Views
|-|-Controllers
|-功能模塊2
|-|-Models
|-|-Views
|-|-Controllers
|-功能模塊3
|-|-Models
|-|-Views
|-|-Controllers
…
|-Base(重用性較高的BaseMVC,如父控制器,父視圖等)
|-|-Models
|-|-Views
|-|-Controllers
|-Main(包含功能模塊以外的MVC目錄)
|-|-Models
|-|-Views
|-|-Controllers
Resources(資源型文件目錄,如數據圖片,plist)
|-photo(照片)
|-city.plist(城市數據)
config(宏定義和const等可修改的配置文件)
|-Const.h(常量文件)
|-Macro.h (宏文件)
|-Notification.h (通知定義文件)
…
AppDelegate(這個目錄下放的是AppDelegate.h(.m)文件)
|-AppDelegate.h
|-AppDelegate.m
Operation(主要的操做類,如網絡請求操做,數據庫操做,操做工具等)
|-Net(網絡層的代碼)
|-Data(數據層代碼)
|-Tools(工具類)
|-Category(類目)
…
Vendors(第三方組件)
|-Libs(第三方庫)
|-|-AFNetworking
|-|-FMDB
|-|-SDWebImage
|-Components(第三方小組件,如第三方自定義控件等)
…
採用新設計的先後效果對比
按照這個設計。我將本身的項目進行了調整。如圖所示:
左邊是我採用該設計調整後的新的目錄結構,右邊是原來的目錄結構。明顯左邊的表達清晰,結構合理,並且比較有廣泛性;右邊的是我之前的目錄結構,由於有時候舊的目錄結構不能徹底達到個人要求,因此就會致使我隨意建立新的目錄,所以明顯比較凌亂。