明年度 (2017) 設計模式 (design patterns)課程的規劃與課程大綱

明年度關於 HSDc. 所開設之「設計模式 (Design Patterns)」課程,已確定與資策會數位教育研究所合作。招生與場地 (均為電腦教室可上機操作)由資策會負責;課程內容 (包括課程大綱與教材製作)與講師由 HSDc. 負責。

課程時間初步規劃為 30 小時,分為 3個星期 (兩週星期六、日,最後一週為星期六)教授完畢。整年度會開設四次課程,C#.NET 與 Java 各兩次輪流開設,也就是約一季開設乙次。第一次課程預計為 3/18-3/19、3/25-3/26、4/9(日),相關課程時程與報名資訊屆時均會同步公佈於 FB社團:軟體設計鮮思維

與原來 HSDc 所規劃的設計模式課程內容,有作過一些調整:

  • 增加物件與軟體設計基礎觀念介紹。
  • 增加對設計模式的結構框架說明。
  • 將 GoF 23 個設計模式分為數個性質相近的主題,每一個主題作系統性的說明。

課程簡介

.NET&Java 所提出 Web MVC (Model-View-Control) 係為 Web 端的解決方案,但並非對整個 Enterprise 系統架構的 MVC 方案-如何設計 具高度彈性具延展性的結構,來解決多變複雜 (包括實體系統的變動與業務邏輯的頻繁變更)的議題。

回歸到軟體人員應具有的基礎功-軟性的設計能力。而這能力的培養,並非由現實對 Web, 資料庫等存取實務技術就可以理解;而是需要研讀大量設計性書籍並具獨立思考的能力,方能設計出某個解決方案 (solution) 的結構並應用於實務系統的運作上。

的確,從無到有或沒有方向的摸索是相當不容易的,所以我們會期望能借重軟體先輩們的智慧結晶與設計法則 (Design Patterns),解決現實設計所面臨的困境與難題;甚而更進一步,能進而活用與創造出所屬自己與團隊的 "設計模式"!

四人幫 (GoF, Gang of Four) 著作的「設計模式 (Design Patterns)」,可以說是軟體領域的孫子兵法。書中介紹的 23 個設計模式,已被大量運用在系統框架(Framework)及應用領域上;不過該書其實艱奧難懂,如同金庸小說中的「九陰真經」上卷一般,充斥的儘是心法,若沒有真經下卷功法的實務修練,是極難打通任督二脈的。

本課程講師群係累積了10數年在軟體設計領域上持續研究學習 (大量研讀名家著作/論文)以及實務的經驗 (大型系統開發、顧問/授課輔導、產品開發...),期能以所累積的心得與實務,並配合現實的實務技術,把每一個設計模式,寫成淺顯易懂的案例,讓有志於從事軟體設計業的學員們,可以理解設計模式所揭露的目的與意義,更能應用在現實的工作專案上。

課程目的

o 採 "問題-解決方案(Problem-Solution)" 的方式,說明每一個設計模式的設計目的與應用。
o 所有設計模式案例 (共23個)均有 C#.NET 程式碼可執行,並透過 ASP.NET Web MVC 畫面 來呈現執行的結果。
o 採用 UML 塑模,完整表達每一個案例的類別圖結構設計,以及物件合作循序圖。
o 課程過程中會帶領學員,把學習與作業成果,利用 GitHub 版控與重構程式碼。

課程大綱

Topic Subject Content
1 基礎概觀
  • 物件基礎觀
    • 物件/類別
    • 類別之間的關係
  • 軟體設計原則
    • 封裝/介面
    • 多型的綜效
  • 設計模式基礎
    • GoF簡介
    • 模式的結構
2 Structural Pattern - 1
封裝的設計應用
o Facade Pattern
o Proxy Pattern
o Adapter Pattern
3 Behavior Pattern - 1
行為的分割與組裝
o Strategy Pattern
o State Pattern
o Command Pattern
4 Creational Pattern - 1
製造工廠
o Abstract Factory
o Factory Method
o Singleton
5 Structural Pattern - 2
結構的拆解與組合
o Composite Structure
o Bridge
o Decorator
o Flyweight
6 Creational Pattern - 2
建立物件與結構
o Builder
o Prototype
7 Behavior Pattern - 2
行為的擴充與合作
o Chain of Responsibility
o Memento
o Observer
o Mediator
o Interpreter
8 Behavior Pattern -3
其他的行為模式
o Template Method
o Iterator
o Visitor

文章導覽

   

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *