~歡迎企業洽談包班需求 ~
「軟體開發/程式設計/智慧綠能課程主題館」 同步招生中 !!
課程介紹
軟體設計的核心目的就是:把軟體做軟 (Keeping Software Soft)。
顧名思義,就是要讓「軟體」具備有「彈性」,可以在需求成長或變動時快速做出反應,也因此,軟體設計的第一原則,就是「彈性」。而要能達成軟體的「彈性」,則背後必定需要有一個「穩定結構」來支撐,但這所謂的「穩定結構」,要能無中生有或自行領悟,卻是不容易的事情。
的確,從無到有或沒有方向的摸索是相當不容易的,所以我們會期望能借重軟體先輩們的智慧結晶與設計法則 (Design Patterns),解決現實設計所面臨的困境與難題;甚而更進一步,能進而活用與創造出所屬自己與團隊的 “設計模式”!
四人幫 (GoF, Gang of Four) 著作的「設計模式 (Design Patterns)」,可以說是軟體領域的孫子兵法。書中介紹的 23 個設計模式,已被大量運用在系統框架(Framework)及應用領域上;不過該書其實艱奧難懂,如同金庸小說中的「九陰真經」上卷一般,充斥的儘是心法,若沒有真經下卷功法的實務修練,是極難打通任督二脈的。
本課程以講師所累積在業界的輔導心得與實務經驗,並配合現實的實作技術,整理可以解決實務常見問題的設計模式,寫成淺顯易懂的案例,讓有志於從事軟體設計業的學員們,可以理解設計模式所揭露的目的與意義,更能應用在現實的工作專案上。
課程目標
- 了解設計模式應用於現實工作上的最佳解決方案
- 為程式開發人員提昇在結構設計面向所需的技能
- 了解 UML 結構設計與實作程式碼之間的對應關係
課程特色
- 採「問題-解決方案 (Problem-Solution)」的方式,說明每一個設計模式的設計目的與應用
- 每一個設計模式,都會提供現實生活面的情境以及軟體開發應用的兩個範例
- 使用 UML 塑模,完整表達每一個案例的類別圖結構以及物件合作圖
- 所有設計模式軟體範例,均有 C#.NET 程式碼可驗證所執行的結果
- 所有設計模式程式碼均整理為 Visual Studio Community IDE 專案 (VS Code 亦可匯入)
課程注意事項
- 本課程請學員自備筆電
預備知識
- 本課程不講授程式語言 (如 Java or C#.NET)的語法,所以參與課學員須有基本的程式設計基礎。
適合對象
- 資深程式開發人員,希能了解需求變動難以維護的結構性問題的最佳解決方案
- 初學程式開發新手,提供一種輕鬆快捷的系統性方法來學習軟體結構性設計
- 技術職專案經理,希能了解軟體結構設計的最佳實務,以降低系統開發維護成本
- 資訊相關課程講師,希能有一套完整的設計模式教案可以教導在學學生
課程內容
| 課程單元 | 課程大綱 |
| 設計模式基礎與系統可持續性思維 | - 為什麼需要設計模式? - 可持續性系統的核心要素:可維護性、可擴充性、可測試性 - 設計模式分類概覽 - 創建型 (Creational)、結構型 (Structural)、行為型 (Behavioral) - C# 語言特性 - OOP 基礎:抽象、封裝、繼承、多型 - Interface 與抽象類別的角色 - Dependency Injection 與 IoC 容器 |
| 創建型模式 – 建立穩健的物件生成策略 | - Singleton (單例模式) – 管理全域資源 - Factory Method (工廠方法) – 對象生成的抽象化 - Abstract Factory (抽象工廠) – 跨平台/跨模組的物件族群 - Builder (建造者) – 複雜物件的組裝 - Prototype (原型) – 複製與快取策略 |
| 結構型模式 – 打造可擴充的系統架構 | - Adapter (適配器) – 整合舊系統與新系統 - Decorator (裝飾者) – 動態擴充功能 - Composite (組合) – 樹狀結構的管理 - Proxy (代理) – 控制存取與延遲載入 - Facade (外觀) – 提供簡化介面 |
| 行為型模式與整合案例 – 打造可持續性系統 | - Observer (觀察者) – 事件驅動架構 - Strategy (策略) – 可替換的演算法 - Command (命令) – 封裝操作 - Mediator (中介者) – 降低模組耦合 - State (狀態) – 狀態驅動邏輯 |

