




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上設計準則I:正確性和健壯性1. 正確性:每個項目都要滿足指定的需求,然后一起滿足所有應用程序的需求,設計的正確性一般是指充分性,實現正確性的正式方法是依靠數學邏輯,非正式方法是判斷設計是否滿足所需的功能,當進入詳細設計階段時,經常采用正式方法來判斷正確性。2. 模塊可是類或者類的包,包的接口和類的接口不同,包不能被實例化,通過包來使用接口的一種方法是利用包中指定對象來提供相應的接口。3. 為了模塊化特定的應用程序,在高層需要創建包,在底層需要創建類4. 設計中用到兩種類:領域類和非領域類,一般是從領域類開始類的選擇,然后擴展到非領域類,非領域類通常用于概括領域類。5.
2、 健壯性:防止錯誤輸入,防止開發錯誤;提高健壯性的辦法:檢查輸入、初始化、參數傳遞技術、檢查參數是否違反約束的方法、在類中捕獲參數、包裝參數、強化意圖。設計準則II 靈活性、可重用性、高效性1. 靈活性:在設計時通常要考慮到將來的變化;增加新功能要依據其上下文和應用范圍2. 可重用性:一個方法相對于上下文環境越獨立,其可重用性就越高;完全指定、避免不必要的封裝類耦合、讓名字更具表達性、解釋算法。3. 高效性:應用程序必須在指定時間內完成特定的功能,同樣,對內存容量也有一定的要求設計模式引言:1. 設計目標是:靈活性、健壯性、可重用性2. 設計原則:面向接口編程的原則(面向接口編程而不是面向實現
3、編程)、可變性封裝、開閉原則(對擴展開放,對修改關閉)、里氏替換原則(適用于父類,但不一定適用子類)、組合/聚合原則(盡量使用組合聚合/聚合,盡量不使用繼承);接口隔離原則(避免接口污染)、依賴倒轉原則(高層低層依賴于抽象、細節依賴于抽象)、迪米特原則(不和陌生人說話)、單一原則3. 模式的四個基本要素:問題(描述了應該在何時使用模式)、解決方案(描述了設計的組成成分)、效果(描述了模式應用的效果及使用模式應該權衡的問題)、模式名稱4. 設計模式分類:按照目的可以分為:創建型、結構型、行為型 按照范圍可以分為:類模式、對象模式5. 模式和框架的區別:1) 設計模式比框架更抽象2) 設計模式是比
4、框架更小的體系結構元素3) 框架比設計模式更加特例化創建型模式:1. 創建型模式包括抽象工廠模式、生成器模式、工廠模式、原型模式、單件模式2. 創建型模式抽象了實例化過程,它們幫助一個系統獨立于如何創建、組合和表示它的那些對象3. 一個類創建型模式使用繼承改變被實例化的類,而一個對象創建型模式將實例化委托給另一個對象。4. 隨著系統演化地越來越依賴于對象復合而不是類繼承,創建型模式變得更為重要5. 創建型模式在什么被創建、誰創建它、它是怎樣被創建的以及何時創建這些方面給予很大的靈活性6. 抽象工廠模式:意圖:提供一個創建一系列相關或相互依賴對象的接口而不需要指定他們具體的類別名:KIT適用性:
5、1) 一個系統不應當依賴于產品類實例如何被創建、組合和表達的細節2) 這個系統的產品有多余一個的產品族,而系統只消費其中某一個族的產品3) 同屬于一個產品族的產品是在一起使用的4) 系統提供一個產品類的庫,所有產品以同樣的接口實現,從而使客戶端不依賴于實現參與者:抽象工廠角色(核心)、具體工廠(在客戶端的調用下創建實例)、抽象產品(所擁有的共同接口)、具體產品效果:1)分離了具體的類 2)使得易于交換產品系列 3)有利于產品的一致性 4)難以支持新種類的產品實現:1)將工廠作為一個單件 2)創建產品 3)定義可擴展的工廠相關:AbstractFactory類通常用工廠方法實現,一個具體工廠通常
6、是一個單件工廠方法模式:意圖:定義一個用于創建對象的接口,讓子類決定實例化哪個類。Factory Method使一個類的實例化延遲到其子類別名:虛構造器適用性: 1)當一個類不知道它所必須創建的對象的類的時候 2)當一個類希望由他的子類來指定他所創建的對象的時候效果: 1)多態性: 客戶代碼可以做到與特定應用無關,適用于任何實體類 2)子類提供掛鉤。基類為工廠方法提供缺省實現,子類可以重寫新的實現,也可以繼承父類的實現。- 加一層間接性,增加了靈活性 3)封裝性好,擴展性好,屏蔽產品類 4)需要Creator和相應的子類作為factory method的載體,如果應用模型確實需要creator
7、和子類存在,則很好;否則的話,需要增加一個類層次單件模式:意圖:保證一個類有且只有一個實例,并提供一個訪問它的全局訪問點適用性:1)當類只能有一個實例而且客戶可以從一個眾所周知的訪問點訪問它2) 當這個唯一實例應該是通過子類化可擴展的,并且客戶應該無需更改代碼就能使用一個擴展類的實例優點:1)對唯一實例的受控訪問 2)縮小名空間 3)允許對操作和表示的精化 4)比類操作更靈活使用單件模式的要點:單件模式中的實例構造器可以設置為protected 以允許子類派生; 單件模式只考慮到了對象創建的管理,沒有考慮對象銷毀的管理。實現:保證一個唯一的實例;創建單件類的子類/本質:內存中只能有一個對象/案
8、例:定時器,計數器/使用場景:一個項目只要一個共享訪問點和共享數據;創建對象消耗資源比較多,如IO操作和數據庫讀取/注意:線程安全public sealed class Singleton private static Singleton _singleton = null; private static readonly object _synLock = new object(); private Singleton() public static Singleton GetInstance() lock (_synLock) if (_singleton=null) _singleton
9、 = new Singleton(); return _singleton; 結構型模式:1. 結構型模式涉及到如何組合類和對象以獲得更大的結構。2. 結構型類模式采用繼承機制來組合接口或者實現。3. 結構型模式包括:適配器模式(類對象)、組合模式(對象)、裝飾模式(對象)4. 適配器模式:意圖:將一個類的接口轉化為客戶希望的另外一個接口,Adapter模式使得原本由于接口不兼容而不能夠在一起工作的類可以一起工作別名:包裝器適用性:1)想使用一個已經存在的類,但接口不符合需要2) 想創建一個可復用的類,該類可以和其他不相關的類和不可預見的類協同工作3) 想使用一些已經存在的類,但不可能對每一個
10、都子類化以匹配他們的接口,對象適配器可以可以適配他們的父類接口結構:類適配器(使用多重繼承) 對象適配器(使用對象組合)效果:類適配器:1)用一個具體的類適配Adaptee和Target,當想要匹配一個類及他的子類的時候,類Adapter將不再適用 2)Adapter可以重新定義Adaptee的部分方法 3)僅僅引入了一個對象,不需要額外的指針對象適配器:1)允許Adapter和一個或者多個Adaptee進行適配,Adapter可以一次性給多個Adaptee添加功能2) 使得重新定義Adaptee的部分希望變得困難注意事項:1)Adapter的匹配程度 2)可插入的Adapter 3)使用雙向
11、適配器通過透明操作實現:可插入的適配器的實現方法:使用抽象操作、使用代理對象、參數化的適配器組合模式:意圖:將對象組合成數結構以表示“整體部分”結構,組合模式使得用戶對單個對象和組合對象的使用具有一致性適用性:1)想表示對象的“整體部分”的結構2) 希望用戶忽略組合對象與單個對象的不同,用戶將統一地使用組合結構中的對象效果:1)通過遞歸組合,在客戶端代碼中,任何用到基本對象的地方都可以使用組合對象2) 簡化客戶代碼,客戶可以一致地使用組合結構和單個對象3) 使得更容易添加新類型的組件4) 設計一般化,由于容易添加新組件,也將容易帶來新問題裝飾模式:意圖:動態地給一些對象添加一些額外的職責。別名
12、:包裝器模式適用性:1)在不影響其他對象的情況下,以動態、透明的方式給單個對象添加職責2) 處理那些可以撤銷的職責3) 當不能采用生成子類的方法進行擴充時。效果:1)比靜態繼承更靈活 2)避免在層次結構高層的類有太多的特征 3)Decorator余它的Component不一樣 4)有許多小對象使用注意事項:1)接口的一致性2)省略抽象的Decorator類 3)保持Component類的簡單性 行為模式:迭代器模式:意圖:提供一種方法順序訪問一個集合對象中的各個元素,而不暴露該對象的內部表示別名:游標適應性:1)訪問一個聚合對象的內容而無需暴露它的內部表示2) 支持對聚合對象的多重遍歷3) 支
13、持多重迭代效果:1)它支持以不同的方式遍歷一個聚合 2)簡化了聚合的接口 3)在同一個聚合上可以有多個遍歷觀察者模式:意圖:定義對象間的一對多的關系,當一個對象的狀態發生變化時,所有依賴于他的對象都得到通知并被自動更新別名:依賴,發布訂閱適用性:1)當一個抽象模式有兩個方面,其中一個方面依賴于另一個方面,將這二者封裝在獨立的對象中以使它們可以各自獨立地改變及復用2) 當對一個對象的改變需要同時改變其他對象,而不知道有多少對象有待改變3) 當一個對象必須通知其他對象,但又不能假定其他對象是誰效果:1)目標和觀察者間的抽象耦合 2)支持廣播通信 3)意外的更新狀態模式:意圖:允許一個對象在其內部狀
14、態發生改變時改變了它的詢問,對象看起來似乎改變了它的類別名:狀態對象適用性:1)一個對象的行為取決于他的狀態,并且它必須在運行時刻根據狀態改變它的行為2) 一個操作中含有龐大的多分支語句,并且這些分支依賴于該對象的狀態效果:1)將有特定效果的行為局部化,并將不同狀態的行為分割開來 2)使得狀態轉換顯示化 3)State對象可被共享體系結構:定義:軟件體系結構包括構成系統的設計元素的描述,設計元素的交互,設計元素組合的模式,以及這些模式中的約束。意義:1)體系結構是風險承擔者進行交流的手段 2)體系結構有助于系統級關注點的理解 3)體系結構是早期設計決策的體現 4)軟件體系結構是可傳遞和可重用的
15、模型作用:軟件系統的體系結構定義系統由計算構件和構件之間的相互作用組成;體系結構還指出了系統需求和已構建系統的元素之間的對應關系,能為設計方案的選擇提供基本原則。研究內容:1)通過提供一種新的體系結構描述語言(Architectural Description Language)解決體系結構描述問題2) 體系結構領域知識的總結性研究。3) 針對特定領域的框架的研究。4) 軟件體系結構形式化支持的研究。框架、體系結構、設計模式三者的比較:1) 設計模式是對在某種環境中反復出現的問題以及解決該問題的方案的描述,比框架更抽象;2) 框架可用代碼表示,也能直接執行或復用,而對模式而言只有實例才能用代碼
16、表示3) 設計模式是比框架更小的元素,一個框架中往往含有一個或多個設計模式,框架總是針對某一特定應用領域,但同一模式卻可適用于各種不同的應用。4) 體系結構風格描述了軟件系統的整體組織結構,它獨立于實際問題。而設計模式和應用框架更加面向具體問題。常見的體系結構的優缺點:兩層C/S結構:優點:1)強大的數據操作和事務處理能力,模型思想簡單,易于人們理解和接受。 2)硬件和軟件的變化顯示出極大的適應性和靈活性,而且易于對系統進行擴充和縮小 3)大的應用處理任務分布到許多通過網絡連接的低成本計算機上,以節約大量費用。缺點:開發成本較高、客戶端程序設計復雜、信息內容和形式單一、用戶界面風格不一、軟件移
17、植困難、軟件維護和升級困難、新技術不能輕易應用三層C/S結構: 優點:1)允許合理地劃分三層結構的功能,使之在邏輯上保持相對獨立性,能提高系統和軟件的可維護性和可擴展性 2)允許更靈活有效地選用相應的平臺和硬件系統。并且這些平臺和各個組成部分可以具有良好的可升級性和開放性。 3)應用的各層可以并行開發 4)為嚴格的安全管理奠定了堅實的基礎缺點:1)三層C/S結構各層間的通信效率若不高,即使分配給各層的硬件能力很強,其作為整體來說也達不到所要求的性能 2)設計時必須慎重考慮三層間的通信方法、通信頻度及數據量。這和提高各層的獨立性一樣是三層C/S結構的關鍵問題。B/S結構:優點:1)基于B/S體系
18、結構的軟件,系統安裝、修改和維護全在服務器端解決,達到了“零客戶端”的功能,很容易在運行時自動升級。2) B/S體系結構還提供了異種機、異種網、異種應用服務的聯機、聯網、統一服務的最現實的開放性基礎缺點:1)B/S體系結構缺乏對動態頁面的支持能力,沒有集成有效的數據庫處理功能2) B/S體系結構的系統擴展能力差,安全性難以控制。3) 采用B/S體系結構的應用系統,在數據查詢等響應速度上,要遠遠地低于C/S體系結構4) 數據的動態交互性不強,不利于在線事務處理(OLTP)應用C/S與B/S混合之“內外有別”模型:優點:外部用戶不直接訪問數據庫服務器,能保證企業數據庫的相對安全;企業內部用戶的交互
19、性較強,數據查詢和修改的響應速度較快缺點:企業外部用戶修改和維護數據是速度較慢,較煩瑣,數據的動態交互性不強C/S與B/S混合之“查改有別”模型:優點:優點體現了B/S體系結構和C/S體系結構的共同優點,即B/S對客戶端要求不高,只需要查詢的客戶端只要安裝瀏覽器即可,提供了開放性,實現修改的終端和服務器之間采取C/S結構。缺點:外部用戶能直接通過Internet連接到數據庫服務器,企業數據容易暴露給外部用戶,給數據安全造成了一定的威脅體系結構案例:1.名稱:上下文關鍵字解決方案:1)基于功能分解,可以共享訪問數據表示;2) 基于隱藏設計決策的分解2. 名稱:儀器軟件解決方案:1)改進后的管道過濾器模型2) 專用化模型3. 名稱:移動機器人解決方案:1)控制環路2) 分層體系結構3) 隱式調用4) 黑板體系結構體系結構評估方法:1) SAAM(軟件架構分析方法)體系結構的描述、場景的形成、場景的分類和優先級的確定、對間接場景的單個評估、場景相互作用的評估、形成總體評估2) ATAM(體系結構權衡分析方法)步驟:1)描述 :描述ATAM方法 描述商業動機、描述體系結構 2)調查與分析: 確定體系結構方法、生成質量屬性效用樹、分析體系結構方法
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 受拉構件的配筋形式鋼筋混凝土結構課件
- 四危險源設備吊裝課件
- 鐵路工程安全技術石家莊鐵路84課件
- 《GB 17681-1999易燃易爆罐區安全監控預警系統驗收技術要求》(2025版)深度解析
- 中華文化課件背景
- 校園食堂承包合同書
- 《房地產基礎》課件 情境三 教你選對產品
- 山西工程職業學院《新聞紛爭處置方略》2023-2024學年第二學期期末試卷
- 遼寧石化職業技術學院《國際漢語教學案例與分析》2023-2024學年第一學期期末試卷
- 寧夏回族自治區銀川市第一中學2024-2025學年高三2月七校聯考數學試題含解析
- 中醫婦科醫生行業現狀分析
- 必殺04 第七單元 我們鄰近的地區和國家(綜合題20題)(解析版)
- 高大支架坍塌事故原因分析及預防措施
- 企業安全檢查表(全套)
- 票據業務承諾函
- 《來一斤母愛》課件
- ISO13485質量管理手冊
- 辦理用電戶更名過戶聲明書范本
- 淺層氣浮設計
- 辯論賽PPT模板模板
- 井下管路安裝規范
評論
0/150
提交評論