設計模式對系統設計與實現的影響_第1頁
設計模式對系統設計與實現的影響_第2頁
設計模式對系統設計與實現的影響_第3頁
設計模式對系統設計與實現的影響_第4頁
設計模式對系統設計與實現的影響_第5頁
已閱讀5頁,還剩1頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

經典word整理文檔,僅參考,雙擊此處可刪除頁眉頁腳。本資料屬于網絡整理,如有侵權,請聯系刪除,謝謝!1引言從上世紀60年代末開始,由于計算機軟件對生產力有巨大的推動作用,各可維護性明顯降低,軟件行業出現了危機。直到80年代,軟件開發采用面向對弱,往往修改一處代碼會帶來無法預測的后果;系統復用率低,黏度過高等等。為了避免上述缺陷,設計出具備良好的可擴展性、可復用性、易維護性的系統,我們應在系統設計和實踐階段采用設計模式的思想。設計模式是軟件復用技術中的一個重要概念[1]對象的軟件設計經驗記錄下來,并予以系統的命名、解釋和評價,使不同的開發人員在進行不同系統的設計與開發時,可以使用別人的成功經驗而不必為普通的、重復的問題重新設計解決方案,使設計者更容易理解其設計思路,能為自己設計模式的種類日益增多,相對于GoF在1994年提出的23種通用設計模式,來進行探討。[2]2從設計原則到設計模式2.1設計原則對象有幾個原則:開閉原則、里氏代換原則、依賴倒轉原則、接口隔離原則、合成/聚合復用原則、最小知識原則、單一職責原則和抽象原則。開閉原則具有理性的目的。(1)開閉原則在不修改原來代碼的情況下進行擴展。這樣在擴展的同時對舊版本有很好的支持,使得系統更加靈活,具有很強的適應性。(2)里氏代換原則現好的方法(相對于抽象方法而言),實際上是在設定一系列的規范和契約,雖任意修改,就會對整個繼承體系造成破壞。代碼復用的重要基礎。(3)合成復用原則合成是值的聚合,聚合是引用的聚合。合成和聚合都是關聯的特殊種類,聚合表示整體和部分的關系,表示“擁有”;合成則是一種更強的“擁有”,部分開發中應盡量使用合成/聚合,而不是使用繼承。(4)依賴倒轉原則編程;傳遞參數,或者在組合聚合關系中,盡量引用層次高的類。高層模塊不應操作,把展現細節的任務交給他們的實現類去完成。(5)接口隔離原則小的接口上。建立單一接口,不要建立龐大臃腫的接口,盡量細化接口,接口中賴一個綜合的接口更靈活。接口是設計時對外部設定的“契約”,通過分散定義不能交給一個接口。(6)抽象原則用抽象構建框架,用實現擴展細節。因為抽象靈活性好,適應性廣,只要抽類的共同屬性和方法。具體類是不被其他類所繼承的,即子類繼承了抽象類后,這個子類不應再被其他類所繼承。(7)迪米特法則心做自己的事情而不去關心其他的事情,以降低耦合度。(8)單一職責原則面向對象編程思想所特有的,只要是模塊化的程序設計,都適用單一職責原則。2.2設計模式設計模式是一些富有經驗的面向對象技術專家針對特定問題而設計的成功是設計模式。[1]代碼編制真正工程化,如同大廈的結構一樣,設計模式是軟件工程的基石脈絡。一般而言,一個模式有四個基本要素:模式名稱、問題(描述應該在何時使用模式)、解決方案(描述設計的組成成分、它們之間的相互關系及各自的職責和協作方式)、效果(描述模式應用的效果及使用模式應權衡的問題)。2.3設計思想種可重用的解決方案,在軟件工程中一個設計模式往往能解決一類軟件設計問和體系結構,采用設計模式的軟件系統具有更好的可維護性。軟件在不斷進化,需求在不斷改變,所以軟件應該適應變化。設計模式是[3]讓變化的影響最小;封裝復雜性,提供簡單的接口;針對接口編程,而不是針對實現編程;最大程度地繼承、組合、委托、多態和參數化。職責之間相關程度和集中程度的度量[4]相關的職責不要分派給同一個類。UI)、業務邏輯層(BLL)、數據訪問層(DAL)。區分層次的目的即為了高內聚,低耦合的思想。可復用面向對象軟件系統現在一般劃分為兩大類:應用程序工具箱和框架,我們平時開發的具體軟件都是應用程序,Java的API屬于工具箱;而框架是構成一類特定軟件可復用設計的一組相互協作的類,EJB是Java應用于企業計算中共同的設計決策,框架強調設計復用,因此框架設計中必然要使用設計模式。,熟悉這些設計模式可幫助我們掌握EJB、J2EE等框架的結構。3GRASP職責分配模式與設計模式的應用價值GRASP作為設計模式來描述對象設計和職責分配的基本原則。GRASP原Adapters所需的Adapter,我們應用工廠模式,設計一個,按系統當前的要求實例化相應的;為了系統中同一類的Adapters實例具有唯一的創建邏輯,我們應用單實例類模式,使Factory在系統中僅有唯一的一個實例。的維護量。4小結方向

溫馨提示

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

評論

0/150

提交評論