《軟件架構設計模式實踐與應用培訓課程大綱》由會員分享,可在線閱讀,更多相關《軟件架構設計模式實踐與應用培訓課程大綱(6頁珍藏版)》請在裝配圖網上搜索。
1、 軟件架構設計模式實踐與應用培訓課程大綱
第一單元:設計模式與面向對象的設計思想
一、面向對象與設計模式
1.面向對象與設計模式的聯(lián)系
2.面向對象的設計原則:
開閉原則、依賴倒置原則、Liskov替換原則、單一職責原則、接口分離原則、組合復用原則、所知最少原則
案例分析:會議管理系統(tǒng)等、API函數的啟示等
3.用GRASP模式指導面向對象的設計
4.信息專家、創(chuàng)建者、高內聚、低
2、耦合、控制者、多態(tài)、間接、純虛構、保護變化
案例分析:
信息專家、控制者、低耦合、間接模式案例分析
5.應用GRASP模式精化架構設計案例分析
二、UML中的常見疑難問題辨析
1.類設計
1)UML中關系的辨析:
2)依賴關系、關聯(lián)關系辨析;聚合,組合辨析。
3)類設計中的常見問題:
一些常見但易混淆的類關系圖;熟悉類的自關聯(lián)形式;使用關聯(lián)類;一些易混淆的重數表示方法;建模為對象與建模為屬性 / 建模為方法與建模為對象的辨析。
2.交互圖中的常見問題:
1)循環(huán)、條件、創(chuàng)建、并行的表示。
2)控制類的地位;邊界、控制、實體類的交互規(guī)則。
3.其它辨析
1)擴展基類與
3、覆蓋基類等;自關聯(lián)、關聯(lián)多重性、關聯(lián)角色名辨析。
2)消除多重繼承的常用手段。
第二單元:設計模式詳解
一、設計模式介紹
1.從幾個案例說起
文件解析器:
1)文件解析器的初始設計。
2)初始設計遭遇的問題。
3)用模式來思考。
演示控制系統(tǒng):
1)一個不錯的演示控制系統(tǒng)。
2)功能漸強,結構漸亂。
3)用統(tǒng)一的方式處理問題。
多窗口的系統(tǒng):
1)直觀的想法。
2)松耦合的實現(xiàn)。
薪酬系統(tǒng):
1)虛假的策略。
2)設計人員的功底; 抽象的重要性。
編輯器。
1)模式的困惑。
2)一切從實際出發(fā)。
2.設計模式分類及特點
1)為何需要設計模式;設計
4、模式在軟件設計中所處的層級及階段。
2)設計模式的特點。
3)設計模式的幾種分類。
4)設計模式的意圖及考慮問題的基本思想。
5)設計模式的優(yōu)點及不足。
二、組織接口型模式:
1.接口的意義。
2.適配器模式。Adapter
1)適配器模式介紹。
2)容易被忽略的情況:關于接口的修改。
例:文件解析器系統(tǒng)的接口設計。
3.適配器總結。
4.外觀模式。
1)令人望而生畏的API函數。
2)外觀模式的作用。
3)容易被忽略的外觀。
例:文件解析器系統(tǒng)的外觀設計。
5.外觀模式與適配器的辨析。
6.中介者模式
1)中介者模式的使用場景。
2)中介者模式在架構中
5、的重要地位。
3)中介者模式與控制者。
三、創(chuàng)建型模式
1.單例模式。
1)單例模式的意義。
2)多線程中的問題。
例:引入單例模式。
2.工廠模式
1)工廠模式的使用場景。
2)工廠模式與反射。
例:引入工廠模式。
3.抽象工廠模式
1)創(chuàng)建不同對象的多個系列產品。
2)工廠模式與抽象工廠模式的區(qū)別。
例:引入抽象工廠模式。
4.構造者模式
1)構造者模式的應用場景。
2)構造者模式中的控制者。
5.原型模式
1)作為工廠的原型
2)利用克隆進行原型
3)
四、擴展型模式
1.功能與邏輯的關系
1)功能模塊的設計要點。
2)邏輯模塊的設計要點
6、。
3)系統(tǒng)穩(wěn)定及可擴展的秘訣。
2.模板方法模式
1)部分的多態(tài)。
2)模板方法模式的使用場合。
3)模板方法模式與IOC。
例:文件解析器中的模板方法模式。
3.策略模式
1)繼承與組合的辨析。
2)多態(tài)的經典使用。
3)無處不在的策略模式。
例:運輸系統(tǒng);在多窗口系統(tǒng)中引入策略模式。
4.橋接模式
1)從“類爆炸”說起。
2)復雜多對多的處理。
3)僅針對接口編程是不夠的。
4)橋接模式的要點:抽象類行為的具體實現(xiàn)中有重復的方法。
5)從橋接模式到面向對象的誤區(qū)。
例:在文件解析器中引入橋接模式。
5.狀態(tài)模式
1)狀態(tài)模式的本質:類狀態(tài)機。
2
7、)狀態(tài)模式的前提條件:經常發(fā)生改變的是狀態(tài)(業(yè)務流程),而非對應的處理。
3)狀態(tài)模式使用。
4)狀態(tài)模式與表驅動法。
5)
6.策略、橋接、狀態(tài)、模板方法模式的辨析。
7.裝飾模式
1)裝飾模式的使用場合。
2)裝飾模式的要點。
3)Java中的裝飾模式。
例:裝飾模式在打印中的使用。
8.代理模式
1)代理模式的使用場合。
2)代理模式的要點。
3)代理模式與AOP
9.訪問者模式
1)訪問者模式的使用場合。
2)雙重分發(fā)機制。
3)與橋接模式的比較。
例:在演示控制系統(tǒng)中引入橋接模式。
10.責任鏈模式
1)責任鏈模式的使用場合。
2)責任鏈模式
8、的要點。
3)消息路由與責任鏈模式。
11.組合模式
1)組合模式的使用場合。
2)組合模式的使用要點。
例:組合模式在表單統(tǒng)計中的使用。
五、操作型模式
1.命令模式
1)命令模式的特點、優(yōu)點及缺點。
2)命令模式的典型使用場合。
例:在客戶端與服務器端傳遞命令。
例:在元搜索系統(tǒng)中使用命令模式。
2.觀察者模式
1)觀察者模式的使用場景。
2)觀察者模式與MVC。
3)觀察者模式使用中變體。
例:用觀察者模式解決多窗口系統(tǒng)的聯(lián)動問題。
3.享元模式
1)享元模式的使用場景。
2)內存管理:存根(stub)與享元模式。
4.備忘錄模式
1)備忘
9、錄的使用場景。
5.迭代器模式
1)Java、stl、c#中的迭代器實例。
例:構造統(tǒng)一的樹狀結構迭代。
6.解析器模式:
1)解析器模式的使用場合。
第三單元:設計模式本質論
一、關于功能與邏輯的分離。
1.隔離關注面。
2.軟件架構設計的思考。
3.單向依賴與雙向依賴。
4.強依賴與弱依賴。
5.面向對象的誤會。
6.領域模型。
7.DIP、DI和IOC。
8.分離、分離,還是分離!
9.橋接、策略、狀態(tài)、訪問者、模板方法模式。
二、關于間接。
1.間接在軟件設計中的地位。
2.變形記。
3.接口在間接中的地位。
4.掌握好度。
5.間接、間接、
10、還是間接!
6.實際項目運用中的折衷。
三、關于動態(tài)對象。
1.一個有爭議的建模例子。
2.你真正理解什么是對象嗎?
3.善于構建動態(tài)對象。
4.其它的小對象。
四、關于常用模式的組合。
1.用中介者模式作為中控。
2.用橋接/ 策略模式作為情況分支處理。
3.用狀態(tài)模式進行事件分發(fā)。
4.用命令模式處理復雜的操作。
5.用訪問者模式、裝飾模式、組合模式統(tǒng)一流程。
6.用工廠/ 抽象工廠模式進行創(chuàng)建組配。
7.用單例模式簡化傳輸,構建無狀態(tài)對象。
8.用模板方法模式處理小流程。
9.用觀察者模式實現(xiàn)聯(lián)動和消息相應。
10.用狀態(tài)模式實現(xiàn)控制中樞。
五、關于模式的誤用。
1.以業(yè)務為邊界。
2.不用模式的正當理由。
3.不可避免的類爆炸。
4.子類復子類,子類何其多。
5.理解模式的本質,而非背誦形式。
6.高手的選擇。
第五單元:設計模式綜合練習
一、設計模式綜案例。
1.網絡數據采集分析系統(tǒng)。
2.基于網絡元搜索的系統(tǒng)。
3.企業(yè)薪酬管理系統(tǒng)。
4.會議管理系統(tǒng)。
5.文件解析系統(tǒng)。
6.圖像處理系統(tǒng)。
7.Devs文件編輯器系統(tǒng)。