為什麼要組織應用程式結構?
在傳統 Windows 開發中,動態連結庫(DLL)是不可或缺的元件。除極小型程式外,實務專案幾乎都由多個編譯單元組成。將大型程式拆分為數個可執行檔與 DLL,不僅便於團隊協作,也利於版本管理與部署更新。
C# 讓 DLL 開發變得簡單
過往使用 C++/VB 建立 DLL 十分繁瑣,需處理匯出表、呼叫慣例等細節。C# 配合 .NET 執行環境,只需加上 /target:library 編譯參數,編譯器即自動產生符合 CLI 標準的組件,開發體驗與撰寫一般執行檔幾無差異。
核心概念
- 動態連結庫(DLL):執行期動態載入,不需靜態連結。
- 編譯單元:單一編譯動作產出的模組(.exe 或 .dll)。
- 命名空間:邏輯上組織類別,避免名稱衝突;可跨檔案、跨組件延伸。
- 組件:.NET 部署、版本控制、安全性的基本單位,包含 Manifest、型別中繼資料、IL 程式碼與資源。
命名空間的雙重角色
- 內部結構:專案內部以功能模組劃分命名空間(如
MyApp.Data、MyApp.UI),維持程式碼清晰。
- 外部結構:加上
public 與適當屬性,將類別導出供其他組件參考;搭配 using 指示詞簡化呼叫語法。
本章節大綱
- 16.1 基本概念:動態連結庫、編譯單元、命名空間與組件
- 16.2 使用命名空間
- 16.3 使用指示詞(using)
- 16.4 程式範例:應用程式結構組織實作
實務建議
- 依「高內聚、低耦合」原則劃分命名空間與組件。
- 公開 API 僅暴露必要型別,內部實作類別標記
internal。
- 組件版本號遵循
Major.Minor.Build.Revision,配合強名稱簽署實現並存。
- 大型方案採用「方案資料夾」對應命名空間層級,便於導航與建置順序控制。
下一節將進入實作範例,示範如何將形狀遊戲拆分為多組件並整合執行。