【iOS 搭建基礎框架】目錄結構篇

Bit俠發表於2018-01-31

本篇是 iOS 搭建基礎框架 系列,第二部分 目錄結構篇

其他相關文章傳送門如下:


關於目錄結構,真的是仁者見仁智者見智,沒有最好,只要適合自己的 ?

在網上搜來搜去,大部分人使用的是以下兩種形式:

  • 架構模式
  • 功能模組

架構模式

使用架構模式(MVC / MVVM等 )劃分,再用功能模組來細分

1.主目錄結構
-KLFoundationFrame
    --AppDelegate         // 程式入口
    --Class               // 業務模組。
    --FunctionModule      // 功能模組  賬號管理,支付管理等
    --BasicModule         //  基礎模組
      ---Config           // 初始化配置。包含巨集定義檔案,全域性配置檔案,全域性常量檔案  
      ---Category         // 類目。包含各種類的分類
      ---Utility          // 工具類。HUD,AlertView等
      ---Vendors          // 第三方庫。部分需要修改或者不支援cocoapod的第三方的框架引入
    --Resource            // 資源。包含plist,image,html,bundle,Localizable.strings等
-KLFoundationFrame Tests
-KLFoundationFrame UITests
-Products                 // 系統自動生成的.app所在資料夾
-Pods                     // 採用 CocoaPods 管理的第三方庫。

2.架構目錄結構
-- Class         
    ---Controller         // MVVM的基類或者通用類
        ----Base     
        ----Home          
    ---Model
        ----Base     
        ----Home 
    ---View
        ----Base     
        ----Home 
    ---ViewModel
        ----Base     
        ----Home         
	
複製程式碼

這種方式,我覺得太難找了

功能模組

使用功能模組劃分,在每個模組裡在用架構模式(MVC / MVVM等)細分

1.主目錄結構
-KLFoundationFrame
    --AppDelegate         // 程式入口
    --Class               // 業務模組。
    --FunctionModule      // 功能模組  
      ---Manager          // 管理類。賬號管理等
      ---Utility          // 工具類。HUD,AlertView等
    --BasicModule         //  基礎模組
      ---Config           // 初始化配置。包含巨集定義檔案,全域性配置檔案,全域性常量檔案  
      ---Category         // 類目。包含各種類的分類
      ---Vendors          // 第三方庫。部分需要修改或者不支援cocoapod的第三方的框架引入
    --Resource            // 資源。包含plist,image,html,bundle,Localizable.strings等
-KLFoundationFrame Tests
-KLFoundationFrame UITests
-Products                 // 系統自動生成的.app所在資料夾
-Pods                     // 採用 CocoaPods 管理的第三方庫。

2.模組目錄結構
-- Class         
    ---Base               // MVVM的基類或者通用類
        ----Controller     
        ----Model       
        ----View 
        ----ViewModel    
    ---Home
        ----Controller     
        ----Model       
        ----View 
        ----ViewModel 
	類推...
複製程式碼

這是我一直在用的目錄結構形式,個人感覺還不賴。

檔案目錄結構

檔案目錄的排列順序如下,若沒有實現相對應的種類,跳過順延下去。

-.h
	-- 檔案註釋
	-- #import			// 匯入類
	-- NS_ENUM			// 列舉類
	-- @protocol			// 代理
	-- @interface			// 檔案入口
	-- @property			// 屬性
	-- methods		        // 方法
	
-.m
	-- 檔案註釋
	-- #import			// 匯入類
	-- #define			// 巨集定義
	-- static 			// 靜態變數
	-- @interface			// 檔案入口
	-- @property			// 屬性
	-- @implementation		// 實現
	-- methods			// 方法	
複製程式碼

檔案規範

在實現檔案 .m檔案中, 充斥著大量的程式碼,為了便於維護,也要制定統一的規範

-.m
    --Lifecycle           		// 生命週期
    --OverwriteSuperClass		// 重寫父類
    --Response Mehtods                  // 響應方法(通知,Target等)
    --Delegate        		        // 代理方法
    --Private Methods        	        // 本類檔案使用的方法,私有的
    --Public Methods       	        // 暴露給外界的介面
    --Getters and Setters               // 屬性的get、set方法,所有的屬性都通過 懶載入的形式來初始化!!!!!!!
複製程式碼

哥們,都浪到這了,順手點個贊❤️唄~

參考文件

相關文章