設計模式框架與實踐_第1頁
設計模式框架與實踐_第2頁
設計模式框架與實踐_第3頁
設計模式框架與實踐_第4頁
設計模式框架與實踐_第5頁
已閱讀5頁,還剩60頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、設計模式框架與實踐怎樣成為一個象棋高手?o 第一步,學習基本規則o 第二步,學習取勝的原理o這時,你說你已經學會下棋了o 但是,你要想成為一個象棋高手,除了多下棋和善于總結經驗以外,一個重要的途徑就是看高手們的棋譜,學習、理解、記憶和應用高手們總結的布局和定式o 這里的布局和定式就相當于我們說的模式,有幾百種。. .怎樣成為一個軟件設計高手?o 第一步,學習基本規則。例如,數據結構、各種算法、編程語言等。o 第二步,學習軟件設計的原理和方法。例如,結構程序設計、模塊化方法、面向對象的設計方法等。o 這時,你已經可以說學會軟件設計了。o 但是,你要想成為一個軟件設計的高手,除了多動手和自己善于總

2、結經驗以外,一個重要的途徑就是看軟件設計的高手們的軟件,學習、理解、記憶和重復應用軟件設計模式。o 這種模式很多,有幾百種。. .目標o 了解面向對象設計的基本原則了解面向對象設計的基本原則o 了解設計模式概念及常用的設計模式了解設計模式概念及常用的設計模式o 了解框架的概念及設計原則了解框架的概念及設計原則o 掌握設計模式的學習方法掌握設計模式的學習方法. .內容o 面向對象設計開發的基本原則o 設計模式概念、分類及常用設計模式o 框架概念及設計原則o 設計模式的運用實例o 油品計算框架o 基于的簡易報表開發框架o 設計. .面向對象設計原則o 開閉原則o 針對接口編程原則o 高內聚-低耦合

3、原則o 最少知識原則o 類的單一職責原則o 依賴倒置原則o 里氏代換原則. .開閉原則o 擴展系統的行為時,不需要修改以前的代碼,而是擴展以前的代碼o 針對修改關閉o 針對擴展開放o 提高代碼的可維護性. .針對接口編程原則o 接口是高層的抽象o 接口可以隱藏實現的細節o 接口可以清晰指出對象的職責o 接口是實現軟件的關鍵o 松散耦合o 增加重用的可能性. .類的單一職責原則o 一個類只做一件事o 一個類的職責僅僅有一個原因而發生改變o 例:如一個界面展示類夾雜業務邏輯代碼或者數據數據庫聯接代碼。. .依賴倒置原則o 抽象不應該依賴于具體o 具體應該依賴于抽象o 抽象依賴于具體,降低了重用的可

4、能性. .結構化編程面向對象的架構. .里氏代換原則o 在所有引用基類的地方,都可以用此基類的子類替換,而不影響程序原來的功能o 違背里氏代換原則將給程序帶來不穩定性. . 鳥 飛(); 鸚鵡 學話();. . 鴕鳥 : 鳥 飛()(“鴕鳥不能飛”); (鳥 d)d.飛();此處換成鴕鳥將導致錯誤. .目標o 了解面向對象設計的基本原則o 了解設計模式概念及常用的設計模式o 了解框架的概念及設計原則o 掌握設計模式的學習方法. .設計模式o 為什么使用設計模式?o 什么是設計模式?o 如何描述一個設計模式?o 如何選擇一個設計模式?o 設計模式的分類. .為什么使用設計模式?o 僵化性():設

5、計難以改變。 o 脆弱性():設計易于遭到破壞。 o 牢固性():設計難以重用。 o 粘滯性():難以做正確的事情。 o 不必要的復雜性( ):過分設計。 o 不必要的重復( ):過多的重復。 o 晦澀性():混亂的表達。. .什么是設計模式?o 面向對象設計經驗的總結和理論化抽象o 描述了軟件設計過程中經常碰到的問題及其解決方案核心。. .如何描述一個設計模式?o 意圖o 別名o 動機o 適用性o 結構o 參與者o 協作o 效果o 實現o 代碼示例o 已知應用o 相關模式. .如何選擇一個設計模式?o 了解每一個設計模式所解決的問題o 了解模式的靜態結構o 了解模式的動態結構o 查看當前設計

6、系統易變的部分. .設計模式的分類o 創建者模式o 有關對象創建的模式o 結構型模式o 描述對象構造和組成的方式o 行為模式o 描述一組對象交互的方式. .創建者模式o 簡單工廠模式 ( )o 工廠方法 ( )o 抽象工廠 ( )o 建造者模式 ()o 原型模式 ()o 單例模式 (). .工廠模式o 封裝對象(產品)的構建過程. .一般的對象創建方式o = ();o = ();o = ();o o o . .使用工廠創建對象. .餐廳里供應的菜譜. .簡單工廠o 簡單工廠-手工作坊,個體戶o 生產面包,米飯,面條o 所有的產品都有一個大師傅制作. .簡單工廠示例代碼. .調用者代碼. .工廠

7、方法o 工廠方法-規模擴大,更專業o 工廠和產品是平行的繼承層次結構o 每一種產品都有專門的大師傅制作o 有面包師,面條師,米飯師. .工廠方法類圖. .抽象工廠o 產品線的生產方式o 提供西北系列飲食o 西北面包,西北面條,西北米飯o 提供東北系列飲食o 東北面包,東北面條,東北米飯. .抽象工廠類圖. .更好的工廠實現方法o 基于反射的實現方式o 采用或數據庫保存類的配置信息o 的工廠. .工廠示例. .工廠模式的總結o 簡單工廠模式不滿足開閉原則o 工廠方法模式對增加新產品支持開閉原則o 抽象工廠對增加新的產品系列滿足開閉原則. .建造者模式o 解決一個復雜對象的構造過程o 一碗蘭州拉面

8、由面條,湯,肉,香菜組成. .原型模式o 通過復制對象的方式來創建對象o 和均提供了對原型模式的直接支持. .單例模式 = ; () ()( ) = (); ;. .結構模式o 適配器模式適配器模式 ()o 橋接模式橋接模式 ()o 組合模式組合模式 ()o 裝飾模式裝飾模式 ()o 外觀模式外觀模式 ()o 代理模式代理模式 ()o 亨元模式亨元模式 (). .適配器模式o 把一個類的接口轉變成客戶希望的接口o 使原本接口不一致的類提供統一的調用接口. .結構模式o 適配器模式 ()o 橋接模式 ()o 組合模式 ()o 裝飾模式 ()o 外觀模式 ()o 代理模式 ()o 亨元模式 ().

9、 .組合模式. .裝飾模式o 適配器模式 ()o 橋接模式 ()o 組合模式 ()o 裝飾模式 ()o 外觀模式 ()o 代理模式 ()o 亨元模式 (). .裝飾模式的引入-較深層次的繼承結構. .裝飾模式o 代替深層的繼承結構代替深層的繼承結構. .示例代碼. .結構模式o 適配器模式 ()o 橋接模式 ()o 組合模式 ()o 裝飾模式 ()o 外觀模式 ()o 代理模式 ()o 亨元模式 (). .外觀模式o 外部與一個子系統的通信僅通過一個門面類進行。市場部銷售部財務部經理辦公室系統集成部客人前臺接待員. .行為模式o職責鏈模式 ( )o命令模式 ()o解釋器模式 ()o迭代子模式

10、()o調停者模式 ()o備忘錄模式 ()o觀察者模式 ()o狀態模式 ()o策略模式 ()o模板方法模式 ( )o參觀者模式 (). .觀察者模式o 發布-訂閱o 一個主題,多個觀察者o 主題發生變化是,多個觀察者被通知o 和都有默認實現. .示例類圖. .示例代碼. .行為模式o職責鏈模式 ( )o命令模式 ()o解釋器模式 ()o迭代子模式 ()o調停者模式 ()o備忘錄模式 ()o觀察者模式 ()o狀態模式 ()o策略模式 ()o模板方法模式 ( )o觀察者模式 (). .策略模式o 針對一組算法,定義一個公共的接口,而將算法的不同實現方式封裝到單獨的類中. .行為模式o職責鏈模式 (

11、)o命令模式 ()o解釋器模式 ()o迭代子模式 ()o調停者模式 ()o備忘錄模式 ()o觀察者模式 ()o狀態模式 ()o策略模式 ()o模板方法模式 ( )o觀察者模式 (). .模板方法模式o 在較高的抽象層次定義一組操作o 定義了抽象操作之間的執行關系. .目標o 了解面向對象設計的基本原則o 了解設計模式概念及常用的設計模式o 了解框架的概念及設計原則o 掌握設計模式的學習方法. .什么是框架?o 解決某一特定領域的問題o 由一組接口和類組成o 好萊塢原則:t , o 凍點( )o 熱點( ) o 框架的重用性o 框架的可擴展性. .一個優秀的框架式如何產生的1. 抽象(抽象很難一

12、次實現)2. 類的職責分配3. 代碼的重構4. 重復以上步驟. .目標o 了解面向對象設計的基本原則o 了解設計模式概念及常用的設計模式o 了解框架的概念及設計原則o 掌握設計模式的學習方法. .設計模式學習的基礎o 熟悉面向對象的基本概念(繼承,封裝,多態)o 熟悉面向對象的基本原則o 熟悉常用靜態關系-泛化,組合,關聯. .設計模式學習的方法和原則o 看成熟框架的開源代碼,逆向工程o 實踐-思考-實踐-思考o 一個循環上升的過程o 原則o 了解設計模式能解決哪些問題o 不要為了模式而模式. . ?. .參考資料o設計模式-可復用面向對象軟件的基礎 Gang of Fouro敏捷軟件開發 Robert C. Martino企業應用架構模式 Martin Fowlero重構-改善既有代碼的設計 Martin FowleroHead

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論