軟件設計和軟件實現
- 軟件設計是一個創造性的活動,在此活動中需要基于客戶需求識別軟件構件及其關系。
- 軟件實現是將設計實現為一個程序的過程
為開發一個系統設計,你需要
- 理解并定義上下文模型以及系統的外部交互
- 設計系統體系結構
- 識別系統中的主要對象
- 開發設計模型
- 刻畫接口
設計模式
設計模式是從Christopher Alexander(Alexander 1979)所提出思想中派生出來的,他認為建筑設計中存在一定的共性模式,這些模式令人喜歡并且有效。
- 結構/靜態模型,使用靜態類及其關系描述系統的靜態結構。這個階段需要描述的重要的關系類型包括泛化(繼承)關系、使用/被使用關系、組合關系。
- 動態模型,描述了系統的動態結構并展示了所期望的系統對象之間的運行時交互。可以描述的交互包括對象發出的服務請求的序列以及由這些對象交互所觸發的狀態變化。
模式在復用中的角色
模式和模式語言是描述最佳實踐、好的設計的方式,其中捕捉了相關的經驗,從而使其他人復用這些經驗成為可能。
模式是一種復用其他設計者的知識和經驗的方式。
適配器模式
- Client:接口的使用者
- ClientInterface:用戶期望的接口
- Adaptee:原有的類,需要被適配的類
- Adaptor:把原有類轉換成用戶希望的類,也就是ClientInterface的實現。
這種設計模式叫做Adaptor,合理的用到了繼承與組合
Adaptor模式的好處?
將系統原有的接口轉換成目前客戶所希望的接口,使得客戶和原有系統無需改變可以一起工作。
Adaptor可以用在什么地方
系統復雜度增長,開發時間的壓縮,以及成本考慮,開發者有很強的動機復用原有代碼或者購買商業構件。但是如何將………融入新系統是一個很大問題。
用Adaptor模式封裝遺留構件
復用(牢記)
- 抽象級
- 對象級
- 構件級
- 系統級