軟件開發(fā)基礎(chǔ)_設(shè)計(jì)模式

軟件開發(fā)基礎(chǔ)_設(shè)計(jì)模式

ID:5568703

大?。?.15 MB

頁數(shù):37頁

時(shí)間:2017-11-13

軟件開發(fā)基礎(chǔ)_設(shè)計(jì)模式_第1頁
軟件開發(fā)基礎(chǔ)_設(shè)計(jì)模式_第2頁
軟件開發(fā)基礎(chǔ)_設(shè)計(jì)模式_第3頁
軟件開發(fā)基礎(chǔ)_設(shè)計(jì)模式_第4頁
軟件開發(fā)基礎(chǔ)_設(shè)計(jì)模式_第5頁
資源描述:

《軟件開發(fā)基礎(chǔ)_設(shè)計(jì)模式》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、設(shè)計(jì)模式(Designpattern)設(shè)計(jì)模式(Designpattern)是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。毫無疑問,設(shè)計(jì)模式于己于他人于系統(tǒng)都是多贏的,設(shè)計(jì)模式使代碼編制真正工程化,設(shè)計(jì)模式是軟件工程的基石,如同大廈的一塊塊磚石一樣。1設(shè)計(jì)模式(Designpattern)GoF(“四人幫”GangofFour,指ErichGamma,RichardHelm,RalphJohnson&JohnVli

2、ssides四人)的《設(shè)計(jì)模式》(1995年出版)是第一次將設(shè)計(jì)模式提升到理論高度,并將之規(guī)范化。提出了23種基本設(shè)計(jì)模式,自此,在可復(fù)用面向?qū)ο筌浖陌l(fā)展過程中,新的大量的設(shè)計(jì)模式不斷出現(xiàn)。2創(chuàng)建型模式...1.AbstractFactory..2提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無須指定它們具體的類。2.Builder2將一個(gè)復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。3.FactoryMethod..3定義一個(gè)用于創(chuàng)建對象的接口,讓子類決定實(shí)例化哪一個(gè)類。使一個(gè)類

3、的實(shí)例化延遲到其子類。4.Prototype..3用原型實(shí)例指定創(chuàng)建對象的種類,并通過拷貝這些原型創(chuàng)建新的對象。5.Singleton.3保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn)結(jié)構(gòu)型模式...1.Adapter.4將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。2.Bridge..4將抽象部分與它的實(shí)現(xiàn)部分分離,使它們都可以獨(dú)立的變化。3.Composite..5將對象組合成樹形結(jié)構(gòu)以表示“部分-整體”的層次結(jié)構(gòu)。4.Decorator.5動態(tài)地給一個(gè)對象添加一些額外的職責(zé)。5.Fa?ade..

4、6為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,F(xiàn)acade模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。6.Flyweight.6運(yùn)用共享技術(shù)有效地支持大量細(xì)粒度的對象。7.Proxy..7為其它對象提供一種代理以控制對這個(gè)對象的訪問。3行為模式...1.ChainofResponsibility.7使多個(gè)對象都有機(jī)會處理請求,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系。2.Command.7將一個(gè)請求封裝為一個(gè)對象,從而使你可用不同的請求對客戶進(jìn)行參數(shù)化;對請求排隊(duì)或記錄請求日志,以及支持可撤

5、消的操作。3.Interpreter.8給定一個(gè)語言,定義它的文法的一種表示,并定義一個(gè)解釋器,這個(gè)解釋器使用該表示來解釋語句中的句子。4.Iterator8提供一種方法順序訪問一個(gè)聚合對象中的各個(gè)元素,而不需要暴露該對象的內(nèi)部表示。5.Mediator8用一個(gè)中介對象來封裝一系列的對象交互。6.Memento..9在不破壞封裝性的前提下,捕獲一個(gè)對象的內(nèi)部狀態(tài),并在該對象之外保存這個(gè)狀態(tài)。7.Observer9定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個(gè)對象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對象都得到通知并自

6、動更新。8.State..9允許一個(gè)對象在其內(nèi)部狀態(tài)改變時(shí)改變它的行為。9.Strategy.10定義一系列的算法,把它們一個(gè)個(gè)封裝起來,并且使它們可以相互替換。10.TemplateMethod..10定義一個(gè)操作中的算法的骨架,而將一些步驟延遲到子類中。11.Visitor.10表示一個(gè)作用于某對象結(jié)構(gòu)中的各元素的操作。本文來自CSDN博客:http://blog.csdn.net/esidemayi/archive/2007/12/05/1918665.aspx4概述在軟件構(gòu)建過程中,我們需要為某些

7、對象建立一種“通知依賴關(guān)系”——一個(gè)對象(目標(biāo)對象)的狀態(tài)發(fā)生改變,所有的依賴對象(觀察者對象)都將得到通知。如果這樣的依賴關(guān)系過于緊密,將使軟件不能很好地抵御變化。使用面向?qū)ο蠹夹g(shù),可以將這種依賴關(guān)系弱化,并形成一種穩(wěn)定的依賴關(guān)系。從而實(shí)現(xiàn)軟件體系結(jié)構(gòu)的松耦合。意圖定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個(gè)對象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對象都得到通知并被自動更新。[GOF《設(shè)計(jì)模式》]5觀察者模式觀察者模式(有時(shí)又被稱為發(fā)布/訂閱模式)是軟體設(shè)計(jì)模式的一種。在此種模式中,一個(gè)目標(biāo)物件管理所有相依于它

8、的觀察者物件,并且在它本身的狀態(tài)改變時(shí)主動發(fā)出通知。這通常透過呼叫各觀察者所提供的方法來實(shí)現(xiàn)。此種模式通常被用來事件處理系統(tǒng)。Java和c#的事件處理機(jī)制就是采用此種設(shè)計(jì)模式。6觀察者模式觀察者模式7氣象監(jiān)控應(yīng)用系統(tǒng)概觀系統(tǒng)有三個(gè)部分:氣象站—獲取實(shí)際氣象數(shù)據(jù)的物理設(shè)備氣象數(shù)據(jù)對象—跟蹤氣象站的數(shù)據(jù),并更新布告板布告板—向用戶顯示當(dāng)前的目前狀況(溫度、濕度、氣壓)或氣象統(tǒng)計(jì)或天氣預(yù)報(bào)8Weather對象知道如何跟物理氣象站聯(lián)系

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。