開源免費下載-完整設計模式 (design patterns) 程式碼(C#.NET)/UML Model 檔

關於爾後我們 HSDc. 軟體設計顧問所開設的課程,除了教材內容尚無開放以外,其它包括完整可執行的程式碼、UML Model 檔,均以開源方式 (open source)免費供下載。

所有開源文件的釋出 (release),均可以透過加入 FB社團-軟體設計鮮思維 獲取最新的訊息。而所有的程式碼/UML Model,我們則是一律統一放置於 GitHub,當然在 README 文件上我們會附上基本的操作說明。

以後這些開源文件,尤其是案例程式碼,我們均會不定期持續版本更新。讀者可以透過 Git 工具隨時作同步更新。

目前提供了兩份開源文件:

另外補充關於上述設計模式 (Design Patterns)案例的說明。

在 C#.NET 程式碼部分 (Java/Spring 版本後續會另行公布),包含了完整 23 個設計模式範例;而關於 UML Model,則還增加了以周遭生活案例的塑模 (modeling),讓每一個設計模式的目的更容易理解。

關於 C#.NET 程式碼的結構部分,主要分為兩個專案 (project):一為 Web MVC by ASP.NET;另一為 Control by POCO (plain-old CLR objects)。

關於本案例的設計模式物件分層結構,可以參考下圖:

圖、圖、設計模式的物件分層結構

圖、設計模式的物件分層結構


ASP.NET Web MVC 完全沒有涉及到資料存取與業務邏輯處理的責任,單純就僅是作為展示 (presentation)操作之用。在我們所提供的案例解決方案,反而 UI 並非重點,所以讀者甚至可以自行實作 Console 或 Windows Form 呈現,完全不會影響到核心的設計模式物件模型。

以所謂的 Enterprise MVC (Model-View-Control)而言,整個 ASP.NET Web MVC 套件 (package)均屬於「View」的角色。

Control 專案分為三大部分:Domain Control, DTO (Data Transfer Object), Design Pattern Object Model。

Domain Control 擔任 Facade (封裝)角色,它封裝了關於資料存取 (data access)、業務邏輯處理 (business logic)的部分。以 Enterprise MVC 而言,它是屬於「Control」的角色。

關於跨 Tier 間的資料傳遞,所有案例均以資料傳遞物件 (DTO, Data Transfer Object)來當為物件之間的參數/回傳值之用。它是屬於 Enterprise MVC 的「Model」角色。(其實現實的專案開發上,DTO 應該是獨立成一個專案,不過在這裡我們是把它簡化成為 Control 專案內的 Package。)

而業務邏輯處理部分,則才是真正設計模式所要解決的問題領域 (problem domain)的設計解決方案 (solution)。案例內的每一個設計模式,均採以「問題-解決方案 (Problem-Solution)」的模型,提供 UML 類別圖/物件合作循序圖 (class/sequence diagram)的圖解,以及具體程式碼的執行,來驗證該問題的解決方案。

簡而言之,本案例所有程式碼的結構設計規劃,均可以讓 Web UI 與 資料/業務處理的邏輯分開個別維護 (透過 Domain Control 隔閡),效果有以下幾點:

  • UI 與 資料/邏輯處理可以分為兩個團隊平行協同開發。
  • UI 回歸至最單純的責任-展示操作。而不應擔負資料存取與邏輯處理。
  • 可以個別視業務邏輯的複雜度與應變程度來決定某一個 Domain Control 物件的行為 (method)是否要委派 (delegate)給可能藉由某一設計模式所揭露的物件模型來處理。
  • 程式碼 (尤指設計模式的物件模型)的重構 (refactoring)不會影響已上線的功能。

文章導覽

   

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。