第一篇:實(shí)驗(yàn)一-軟件體系結(jié)構(gòu)風(fēng)格應(yīng)用
《軟件體系結(jié)構(gòu)風(fēng)格應(yīng)用》設(shè)計(jì)性實(shí)驗(yàn)大綱
一、實(shí)驗(yàn)?zāi)康撵柟毯图訌?qiáng)《軟件體系結(jié)構(gòu)》課程中關(guān)于軟件體系結(jié)構(gòu)風(fēng)格部分內(nèi)容的理解。通過該實(shí)驗(yàn),一方面學(xué)生能夠根據(jù)有關(guān)軟件需求,設(shè)計(jì)合適的軟件體系結(jié)構(gòu);另方面有關(guān)人員課把它作為一個(gè)理解軟件系統(tǒng)的基礎(chǔ)。本次實(shí)驗(yàn)建議通過KWIC實(shí)例分析,理解和掌握多種軟件體系結(jié)構(gòu)風(fēng)格設(shè)計(jì)與實(shí)現(xiàn)。
二、實(shí)驗(yàn)內(nèi)容
采用多種軟件風(fēng)格設(shè)計(jì)與實(shí)現(xiàn)KWIC實(shí)例:
1.采用主/子程序體系結(jié)構(gòu)風(fēng)格實(shí)現(xiàn)KWIC關(guān)鍵詞索引系統(tǒng)。
2.采用面向?qū)ο篌w系架構(gòu)風(fēng)格實(shí)現(xiàn)KWIC關(guān)鍵詞索引系統(tǒng)。
3.采用管道過濾體系架構(gòu)風(fēng)格實(shí)現(xiàn)KWIC關(guān)鍵詞索引系統(tǒng)。
4.采用事件過程調(diào)用體系架構(gòu)風(fēng)格實(shí)現(xiàn)KWIC關(guān)鍵詞索引系統(tǒng)。
三、實(shí)驗(yàn)要求
熟練掌握基于主/子程序體系結(jié)構(gòu)風(fēng)格的KWIC關(guān)鍵詞索引系統(tǒng),在此基礎(chǔ)上,完成基于面向?qū)ο篌w系架構(gòu)風(fēng)格的KWIC關(guān)鍵詞索引系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。選做基于管道過濾體系架構(gòu)風(fēng)格的KWIC關(guān)鍵詞索引系統(tǒng);選做基于事件過程調(diào)用體系架構(gòu)風(fēng)格的KWIC關(guān)鍵詞索引系統(tǒng)。
實(shí)驗(yàn)課前完成實(shí)驗(yàn)報(bào)告的實(shí)驗(yàn)?zāi)康摹?shí)驗(yàn)環(huán)境、實(shí)驗(yàn)內(nèi)容、實(shí)驗(yàn)操作過程等內(nèi)容;實(shí)驗(yàn)課中獨(dú)立/團(tuán)隊(duì)操作完成實(shí)驗(yàn)報(bào)告的實(shí)驗(yàn)操作、實(shí)驗(yàn)結(jié)果及結(jié)論等內(nèi)容;每人一臺PC機(jī),所需軟件Win2003/XP、UML工具(EclipseUML/ Rose/Visio/StartUML/)、Eclipse/MyEclipse、JDK6.0等。實(shí)驗(yàn)課后完成實(shí)驗(yàn)報(bào)告的心得體會內(nèi)容,并及時(shí)提交實(shí)驗(yàn)報(bào)告。
四、實(shí)驗(yàn)報(bào)告
獨(dú)立完成;以文本方式提交報(bào)告,包含如下內(nèi)容:系統(tǒng)簡介(包含目的,內(nèi)容);系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn);實(shí)驗(yàn)結(jié)果及分析;系統(tǒng)演示。
實(shí)驗(yàn)報(bào)告要書寫規(guī)范、文字簡練、語句通順、圖表清晰。
五、思考題
1.試分析和比較B/S,二層C/S和三層C/S,指出各自的優(yōu)點(diǎn)和缺點(diǎn)。
2.在軟件開發(fā)中,采用異構(gòu)結(jié)構(gòu)有什么好處,其負(fù)面影響有哪些?
第二篇:軟件體系結(jié)構(gòu)實(shí)驗(yàn)一
南京信息工程大學(xué)實(shí)驗(yàn)(實(shí)習(xí))報(bào)告實(shí)驗(yàn)(實(shí)習(xí))名稱(實(shí)習(xí))日期系專業(yè)年級班次姓名
一、實(shí)驗(yàn)?zāi)康?)了解智能模型的概念
2)查閱有關(guān)SVM算法,并作理解
二、實(shí)驗(yàn)要求
1)簡介 智能模型基于知識的軟件開發(fā)模型,它與專家系統(tǒng)結(jié)合在一起。該模型應(yīng)用基于規(guī)則的系統(tǒng),采用歸納和推理機(jī)制,幫助軟件人員完成開發(fā)工作,并使維護(hù)在系統(tǒng)規(guī)格說明一級進(jìn)行。該模型在實(shí)施過程中要建立知識庫,將模型本身、軟件工程知識與特定領(lǐng)域的知識分別存入數(shù)據(jù)庫。以軟件工程知識為基礎(chǔ)的生成規(guī)則構(gòu)成的專家系統(tǒng)與含應(yīng)用領(lǐng)域知識規(guī)則的其他專家系統(tǒng)相結(jié)合,構(gòu)成這一應(yīng)用領(lǐng)域軟件的開發(fā)系統(tǒng)。
2)詳細(xì)說明 智能模型也稱為“基于知識的軟件開發(fā)模型”,它把瀑布模型和專家系統(tǒng)結(jié)合在一起,利用專家系統(tǒng)來幫助軟件開發(fā)人員的工作。該模型應(yīng)用基于規(guī)則的系統(tǒng),采用歸納和推理機(jī)制,使維護(hù)在系統(tǒng)規(guī)格說明一級進(jìn)行。這種模型在實(shí)施過程中以軟件工程知識為基礎(chǔ)的生成規(guī)則構(gòu)成的知識系統(tǒng)與包含應(yīng)用領(lǐng)域知識規(guī)則的專家系統(tǒng)相結(jié)合,構(gòu)成這一應(yīng)用領(lǐng)域軟件的開發(fā)系統(tǒng)。
智能模型擁有一組工具(如數(shù)據(jù)查詢、報(bào)表生成、數(shù)據(jù)處理、屏幕定義、代碼生成、高層圖形功能及電子表格等),每個(gè)工具都能使開發(fā)人員在高層次上定義軟件的某些特性,并把開發(fā)人員定義的這些軟件自動(dòng)地生成為源代碼。這種方法需要四代語言(4GL)的支持。4GL不同于三代語言,其主要特征是用戶界面極端友好,即使沒有受過訓(xùn)練的非專業(yè)程序員,也能用它編寫程序;它是一種聲明式、交互式和非過程性編程語言。4GL還具有高效的程序代碼、智能缺省假設(shè)、完備的數(shù)據(jù)庫和應(yīng)用程序生成器。目前市場上流行的4GL(如Foxpro等)都不同程度地具有上述特征。但4GL目前主要限于事務(wù)信息系統(tǒng)的中、小型應(yīng)用程序的開發(fā)。
3)必要性
智能模型所要解決的問題是特定領(lǐng)域的復(fù)雜問題,涉及大量的專業(yè)知識,而開發(fā)人員一般不是該領(lǐng)域的專家,他們對特定領(lǐng)域的熟悉需要一個(gè)過程,所以軟件需求在初始階段很難定義得很完整。因此,采用原型實(shí)現(xiàn)模型需要通過多次迭代來精化軟件需求。
智能模型以知識作為處理對象,這些知識既有理論知識,也有特定領(lǐng)域的經(jīng)驗(yàn)。在開發(fā)過程中需要將這些知識從書本中和特定領(lǐng)域的知識庫中抽取出來(即知識獲取),選擇適當(dāng)?shù)姆椒ㄟM(jìn)行編碼(即知識表示)建立知識庫。將模型、軟件工程知識與特定領(lǐng)域的知識分別存入數(shù)據(jù)庫,在這個(gè)過程中需要系統(tǒng)開發(fā)人員與領(lǐng)域?qū)<业拿芮泻献鳌?/p>
智能模型開發(fā)的軟件系統(tǒng)強(qiáng)調(diào)數(shù)據(jù)的含義,并試圖使用現(xiàn)實(shí)世界的語言表達(dá)數(shù)據(jù)的含義。該模型可以勘探現(xiàn)有的數(shù)據(jù),從中發(fā)現(xiàn)新的事實(shí)方法指導(dǎo)用戶以專家的水平解決復(fù)雜的問題。它以瀑布模型為基本框架,在不同開發(fā)階段引入了原型實(shí)現(xiàn)方法和面向?qū)ο蠹夹g(shù)以克服瀑布模型的缺點(diǎn),適應(yīng)于特定領(lǐng)域軟件和專家決策系統(tǒng)的開發(fā)。
三、實(shí)驗(yàn)結(jié)果
通過本次實(shí)驗(yàn),我對智能模型有了一定的了解和認(rèn)識,同時(shí)也查閱了有關(guān)SVM算法的有關(guān)知識,并作了一定的理解,對該算法有了一定的認(rèn)識。
第三篇:軟件體系結(jié)構(gòu)實(shí)驗(yàn)指導(dǎo)書
《軟件體系結(jié)構(gòu)》實(shí)驗(yàn)指導(dǎo)書
實(shí)驗(yàn)一
系統(tǒng)的用例模型
實(shí)驗(yàn)名稱:系統(tǒng)的用例模型
實(shí)驗(yàn)類型: 設(shè)計(jì)性實(shí)驗(yàn) 學(xué)
時(shí):2課時(shí)
一、實(shí)驗(yàn)?zāi)康?/p>
1.熟悉用例圖的基本功能和使用方法。
2.鍛煉結(jié)合給定題目,進(jìn)行有效需求分析的能力。3.掌握如何使用建模工具繪制用例圖的方法。
二、實(shí)驗(yàn)器材
1.計(jì)算機(jī)一臺。
2.UML建模工具,比如軟件ArgoUML,Rational Rose 或StarUML。
三、實(shí)驗(yàn)內(nèi)容
在理解用例圖的基本功能和使用方法的基礎(chǔ)上,結(jié)合具體問題,完成對系統(tǒng)的需求建模,得到用例模型后,應(yīng)針對每個(gè)用例進(jìn)行業(yè)務(wù)分析,說明其具體的業(yè)務(wù)流程。用Rational Rose或StarUML工具軟件繪制系統(tǒng)的用例圖。下文以Rational Rose為例講解基本步驟。
四、實(shí)驗(yàn)步驟
1.結(jié)合實(shí)際給定題目,完成系統(tǒng)的需求建模。
2.針對每個(gè)用例進(jìn)行業(yè)務(wù)分析。以圖書管理系統(tǒng)中“刪除讀者信息”用例為例來說明實(shí)驗(yàn)具體步驟。
(1)分析:在圖書管理系統(tǒng)中,管理員首先登錄系統(tǒng),系統(tǒng)驗(yàn)證通過后,管理方可向系統(tǒng)查詢數(shù)據(jù),在查詢后,系統(tǒng)會給出提示,有沒有找到相關(guān)的數(shù)據(jù),管理員根據(jù)系統(tǒng)查詢的返回結(jié)果,進(jìn)行下一步的操作,就是刪除讀者,在刪除的過程中,系統(tǒng)會對查詢得到的結(jié)果判斷該記錄是否可以刪除,若可以刪除,則給刪除提示,若不能刪除,也給相關(guān)的提示信息。
(2)根據(jù)分析結(jié)果,書寫業(yè)務(wù)流程,一般包含以下信息:
①管理員在錄入界面,輸入待刪除的讀者名;
②“業(yè)務(wù)邏輯”組件在數(shù)據(jù)庫中,查找待刪除的讀者名; ③如果不存在,則顯示出錯(cuò)信息,返回步驟①,如果存在則繼續(xù); ④“業(yè)務(wù)邏輯”組件判斷“待刪除的讀者”是否可以刪除; ⑤如果不可以,則顯示出錯(cuò)信息,返回步驟⑧,如果可以則繼續(xù); ⑥在數(shù)據(jù)庫中,刪除相關(guān)信息; ⑦顯示刪除成功信息; ⑧結(jié)束。
3.根據(jù)分析結(jié)果,繪制用例圖。以圖書管理系統(tǒng)中“刪除讀者信息”用例為例說明具體繪圖步驟:(1)在用例圖上雙擊main,出現(xiàn)如圖1.1所示,為繪制用例圖做好準(zhǔn)備。
圖1.1(2)在圖中的工具欄選取Actor圖標(biāo),在右邊的圖中添加一個(gè)Actor,并輸入名稱:administrator,如圖1.2所示。
(3)在左邊的工具欄中,選取用例的圖標(biāo),在右邊的圖中畫出一個(gè)用例,并輸入用例的名稱:login。
圖1.2(4)按照步驟(3),繪制出如圖1.4和圖1.5的兩個(gè)用例。
圖1.3
圖1.4
圖1.5(5)在繪出了用例后,接下來的是繪制參與者與用例實(shí)現(xiàn),如圖1.6所示。
圖1.6
(6)根據(jù)步驟(5),同時(shí)完成如圖1.7和圖1.8。此時(shí),刪除讀者用例圖就到此完成。其系統(tǒng)查詢讀者信息等其他的功能會在時(shí)序圖和活動(dòng)圖中描繪。
(7)根據(jù)分析情況,進(jìn)一步添加或細(xì)化用例圖。
圖1.7
圖1.8
五、實(shí)驗(yàn)報(bào)告要求
1. 說明系統(tǒng)的需求建模結(jié)果,對主要用例整理用例圖。2. 小結(jié)實(shí)驗(yàn)心得體會。
實(shí)驗(yàn)二 系統(tǒng)的類模型
實(shí)驗(yàn)名稱:系統(tǒng)的類模型
實(shí)驗(yàn)類型: 設(shè)計(jì)性實(shí)驗(yàn) 學(xué)
時(shí):2課時(shí)
一、實(shí)驗(yàn)?zāi)康?/p>
1.理解類的基本概念。
2.掌握如何從需求分析中抽象出類的方法。
3.掌握在ArgoUML,Rational Rose或StarUML中繪制類的操作方法。
二、實(shí)驗(yàn)器材
1.計(jì)算機(jī)一臺。
2.ArgoUML,Rational Rose 或StarUML工具軟件。
三、實(shí)驗(yàn)內(nèi)容
完成實(shí)驗(yàn)一后,對給定題目的系統(tǒng)的需求的初步分析,得出系統(tǒng)的用例圖,通過對用例的業(yè)務(wù)流程的分析,我們可以初步了解系統(tǒng)的業(yè)務(wù)處理流程。本實(shí)驗(yàn)需要對系統(tǒng)進(jìn)行靜態(tài)建模,這就需要從系統(tǒng)的用例圖去尋找和發(fā)現(xiàn)類。用Rational Rose或StarUML工具軟件繪制系統(tǒng)的類圖。下文以Rational Rose為例講解基本步驟。
四、實(shí)驗(yàn)步驟
1.分析:由前面試驗(yàn)對需求的分析抽象出類。2.繪制類圖的步驟:
(1)打開前面初步構(gòu)建的UML模型文件;(2)打開Rose中的邏輯視圖(Logical View),選擇分析模型(analysis model)目錄。并在其下創(chuàng)建一個(gè)子目錄并命名為:“圖書館業(yè)務(wù)功能”。
(3)用鼠標(biāo)右擊“圖書館業(yè)務(wù)功能”在彈出來的菜單中選擇“New→Class diagram”項(xiàng),創(chuàng)建類圖,如圖2.1所示。
(4)雙擊新建的類圖,并點(diǎn)右邊控件集中選中的類的圖標(biāo),并用鼠標(biāo)在圖中分別拖出一個(gè)類圖,并命名為Book,如圖2.2所示。
圖2.1
圖2.2(5)接下來的一步為設(shè)置類的屬性,在新的類中雙擊該類,在打開屬性面板中,可以看到在此可以設(shè)置類的屬性和方法等其他的信息,圖2.3所示;后撞擊Attributes這個(gè)欄目,此欄目為設(shè)置類的屬性的選項(xiàng),在圖中間的單擊右鍵,可以看到有一個(gè)“Insert”的選項(xiàng),選中這個(gè)選項(xiàng),圖2.4所示,后在出現(xiàn)的對話框中輸入相關(guān)信息如圖2.5所示;如書本的ISBN號,在Type這個(gè)方框內(nèi)輸入此屬性的類型值,同時(shí)可以看到一欄可以設(shè)置此屬性的訪問權(quán)限,一般這些屬性都設(shè)置Private這個(gè)權(quán)限,如圖2.6所示。這個(gè)類的其他屬性也可以按照以上的做法設(shè)置,最后得到的結(jié)果是圖2.7所示。
圖2.3 圖2.4
圖2.5 圖2.6(6)設(shè)置好類的屬性,現(xiàn)在來設(shè)置類的方法(也是操作),雙擊類后在彈出的菜單上選operations這個(gè)選項(xiàng),可以看到圖2.8所示,在圖中的空白地方,單擊右鍵,在彈出的菜單中選insert這個(gè)選項(xiàng),也就只有這個(gè)選項(xiàng)可用,見圖2.9,接著輸入方法名,同時(shí)可以設(shè)置該方法的返回類型,也可以在Documentations的方框內(nèi)填寫一些相關(guān)的方法說明,如圖2.12所示,設(shè)置好該方法的訪問權(quán)限,見圖2.13。類的其他方法也可以按上面來設(shè)置好,最后,得到該類的其他方法見類2.14。
圖2.7 圖2.8
圖2.9
圖2.11
圖2.10
圖2.12
圖2.13 圖2.14(7)至此,類的方法和屬性都設(shè)置好了,如圖2.15所示。
圖2.15(8)按照上面的步驟設(shè)置好所有類的屬性和方法。
(9)為各個(gè)類添加關(guān)系,由關(guān)聯(lián)、泛化、依賴等關(guān)系來靜態(tài)描述業(yè)務(wù)。
五、實(shí)驗(yàn)報(bào)告要求
1.整理實(shí)驗(yàn)結(jié)果。2.小結(jié)實(shí)驗(yàn)心得體會。實(shí)驗(yàn)三 系統(tǒng)的狀態(tài)建模
實(shí)驗(yàn)名稱:系統(tǒng)的狀態(tài)建模
實(shí)驗(yàn)類型: 設(shè)計(jì)性實(shí)驗(yàn) 學(xué)
時(shí):2課時(shí)
一、實(shí)驗(yàn)?zāi)康?/p>
1.熟悉狀態(tài)圖的基本功能和使用方法。2.掌握如何使用建模工具繪制狀態(tài)圖方法。
二、實(shí)驗(yàn)器材
1.計(jì)算機(jī)一臺。
2.ArgoUML,Rational Rose或StarUML 工具軟件。
三、實(shí)驗(yàn)內(nèi)容
完成實(shí)驗(yàn)一后,對給定題目的系統(tǒng)的需求的初步分析,得出系統(tǒng)的用例圖,通過對用例的業(yè)務(wù)流程的分析,我們可以初步了解系統(tǒng)的業(yè)務(wù)處理流程,但對業(yè)務(wù)處理過程的處理狀態(tài)間轉(zhuǎn)換了解仍不夠,這不利于設(shè)計(jì)人員對系統(tǒng)業(yè)務(wù)的進(jìn)一步理解,而狀態(tài)圖能從對象的動(dòng)態(tài)行為的角度去描述系統(tǒng)的業(yè)務(wù)活動(dòng)。因此,在本實(shí)驗(yàn)主要完成用例的狀態(tài)圖。
四、實(shí)驗(yàn)步驟
1.業(yè)務(wù)分析:由前面實(shí)驗(yàn)對用例的描述和分析得到業(yè)務(wù)動(dòng)態(tài)行為的狀態(tài)分析。以用例“還書”為例,還書業(yè)務(wù)的動(dòng)態(tài)行為是由:空閑(idle)、圖書查找(finding)、還書(reversion)、失敗(Failure)、歸還成功(Success)5種狀態(tài)及激活相互轉(zhuǎn)換的事件。
2.繪制狀態(tài)圖。
還書的狀態(tài)圖,還書的主要業(yè)務(wù)都是由管理員來完成,首先管理員必須先登錄系統(tǒng),并通過驗(yàn)證后,便可以進(jìn)行下一步的操作,查找該書的相關(guān)信息,如存在,則進(jìn)行還書操作,如不存在該信息,則給出提示信息;
繪圖步驟:
(1)在用例圖中的還書(revesion)用例,單擊右鍵,如圖3.1所示,新建一個(gè)狀態(tài)圖,命名為revesion狀態(tài)圖,圖3.2所示。
圖3.1
圖3.2(2)雙擊“receivesion”狀態(tài)圖,展開后,在左邊的工具欄上選取一個(gè)實(shí)心圓點(diǎn),此結(jié)點(diǎn)為開始結(jié)點(diǎn),圖3.3所示;當(dāng)還書的時(shí)候,操作者先要詢問系統(tǒng)的狀態(tài),如果系統(tǒng)忙,操作者則必需等待,因此,得到系統(tǒng)的兩種狀態(tài),如圖3.5所示。
圖3.3
圖3.4
圖3.5(3)操作者在詢問系統(tǒng)和狀態(tài)后,得到的圖3.6所示兩種狀態(tài),如果系統(tǒng)忙,操作者必需要等待、結(jié)束,如圖3.7和圖3.8所示,重返步驟(1)。
圖3.6
圖3.7
圖3.8(4)如系統(tǒng)空閑,則進(jìn)行對還書的信息進(jìn)行查詢操作,圖3.9所示;查詢也有兩種結(jié)果,一是查詢得到該書的相關(guān)信息,二查詢不到該書的相關(guān)信息;則此時(shí)有兩種狀態(tài),需要建立兩種狀態(tài),如圖3.10所示。
圖3.9
圖3.10(5)最后,操作者進(jìn)行了操作后,系統(tǒng)會給出操作的結(jié)果給操作者;操作成功或失敗,都會有提示信息給出。整個(gè)的還書的過程便完成;圖3.11所示。
(7)根據(jù)分析設(shè)計(jì)情況,進(jìn)一步添加或細(xì)化狀態(tài)圖。
圖3.11
五、實(shí)驗(yàn)報(bào)告要求
1.整理實(shí)驗(yàn)結(jié)果。2.小結(jié)實(shí)驗(yàn)心得體會。
第四篇:軟件體系結(jié)構(gòu)期末考試
軟件體系結(jié)構(gòu)期末考試
一、題目(論述題):
結(jié)合參與開發(fā)的軟件工程項(xiàng)目,①論述采用的軟件體系結(jié)構(gòu)風(fēng)格或應(yīng)用框架,②論述采 用的軟件設(shè)計(jì)基本原則和策略。
二、題目要求:
(1)簡要說明軟件體系結(jié)構(gòu)的性質(zhì)、研究意義和目標(biāo)是什么?
(2)簡要說明軟件設(shè)計(jì)風(fēng)格、軟件應(yīng)用框架和軟件設(shè)計(jì)模式的特征和區(qū)別?
(3)簡要說明系統(tǒng)中采用的中間件的作用和目標(biāo),(如果沒有,請選擇一種與系統(tǒng)契合的中間件進(jìn)行描述)。
(4)假設(shè)系統(tǒng)沒有采用SOA的架構(gòu),請簡述SOA軟件體系結(jié)構(gòu)的基本概念,Web Service的主要協(xié)議。
三、內(nèi)容要求
作業(yè)格式要求:
1、給出的標(biāo)題。
2、報(bào)告內(nèi)容組織結(jié)構(gòu)清晰,語句流暢,無錯(cuò)別字。
3、圖、表描述恰當(dāng)、與內(nèi)容契合、清晰。圖、表序號標(biāo)注準(zhǔn)確。
4、A4紙,宋體小4號字,標(biāo)準(zhǔn)頁邊距,行間距固定值18磅,頁碼右下。
交打印稿。不多于20頁,可正反面打印。
四、評分細(xì)則
1、題目整體結(jié)構(gòu)、語言表達(dá)、整體格式(20分)
2、軟件體系結(jié)構(gòu)的性質(zhì)、研究意義和目標(biāo)(5分)
3、軟件設(shè)計(jì)風(fēng)格、軟件應(yīng)用框架和軟件設(shè)計(jì)模式的特征和區(qū)別(5分)
4、系統(tǒng)中間件表述(5分)
5、SOA、WebService簡述(5分)
6、論述部分,既要描述,也要有論證(包括適當(dāng)?shù)脑u估)(60分)
五、總評成績
期末成績*70%+平時(shí)成績
第五篇:軟件體系結(jié)構(gòu)解讀
創(chuàng)建型模式
1、工廠方法模式
工廠方法模式包含如下角色: i.Product:抽象產(chǎn)品 ii.ConcreteProduct:具體產(chǎn)品 iii.Factory:抽象工廠 iv.ConcreteFactory:具體工廠 結(jié)構(gòu)圖:
ProductFactory+factoryMethod(): Product...ConcreteProduct<
2、抽象工廠模式
抽象工廠模式包含如下角色: i.AbstractFactory:抽象工廠 ii.ConcreteFactory:具體工廠 iii.AbstractProduct:抽象產(chǎn)品 iv.Product:具體產(chǎn)品 結(jié)構(gòu)圖:
時(shí)序圖:
3、單例模式
單例模式包含如下角色: i.Singleton:單例 結(jié)構(gòu)圖:
Singleton-instance: Singleton-Singleton()+getInstance(): Singleton...if(instance==null)instance=new Singleton();return instance;instance 時(shí)序圖:
結(jié)構(gòu)型模式
4、組合模式
組合模式包含如下角色: i.Component: 抽象構(gòu)件 ii.Leaf: 葉子構(gòu)件 iii.Composite: 容器構(gòu)件 iv.Client: 客戶類
結(jié)構(gòu)圖:
ComponentClient++++operation()add(Component c)remove(Component c)getChild(int i)...Leaf+operation()...for(Component child:children){ child.operation();}++++Compositeoperation()add(Component c)remove(Component c)getChild(int i)...children 時(shí)序圖:
5、外觀模式 外觀模式包含如下角色: i.Facade: 外觀角色 ii.SubSystem:子系統(tǒng)角色 結(jié)構(gòu)圖:
ClientFacadeSubSystemASubSystemBSubSystemC
時(shí)序圖:
6、適配器模式
適配器模式包含如下角色: i.Target:目標(biāo)抽象類 ii.Adapter:適配器類 iii.Adaptee:適配者類 iv.Client:客戶類
結(jié)構(gòu)圖:類適配器
ClientTarget+request()...Adaptee+specificRequest()...Adapter+request()...specificRequest();對象適配器: ClientTarget+request()...Adaptee+specificRequest()...Adapter+request()...adapteeadaptee.specificRequest();時(shí)序圖:
7、代理模式
代理模式包含如下角色: i.Subject: 抽象主題角色 ii.Proxy: 代理主題角色 iii.RealSubject: 真實(shí)主題角色
結(jié)構(gòu)圖:
Subject+request()...ClientProxy-realSubject: RealSubject+preRequest()+request()+postRequest()...preRequest();realSubject.request();postRequest();RealSubjectrealSubject+request()...時(shí)序圖:
行為型模式
8、迭代器模式
迭代器模式包含如下角色: i.Iterator: 抽象迭代器 ii.ConcreteIterator: 具體迭代器 iii.Aggregate: 抽象聚合類 iv.ConcreteAggregate: 具體聚合類 結(jié)構(gòu)圖:
IteratorAggregate+createIterator()++++first()next()hasNext()currentItem()ConcreteIteratorConcreteAggregate+createIterator()...++++first()next()hasNext()currentItem()時(shí)序圖:
9、觀察者模式
觀察者模式包含如下角色: i.Subject: 目標(biāo) ii.ConcreteSubject: 具體目標(biāo) iii.Observer: 觀察者 iv.ConcreteObserver: 具體觀察者 結(jié)構(gòu)圖:
時(shí)序圖:
10、命令模式 命令模式包含如下角色: i.Command: 抽象命令類 ii.ConcreteCommand: 具體命令類 iii.Invoker: 調(diào)用者 iv.Receiver: 接收者 v.Client:客戶類
結(jié)構(gòu)圖:
InvokerCommand+execute()...ClientReceiver+action()...ConcreteCommandreceiver-state: +execute()...receiver.action();時(shí)序圖:
11、策略模式
策略模式包含如下角色: i.Context: 環(huán)境類 ii.Strategy: 抽象策略類 iii.ConcreteStrategy: 具體策略類
結(jié)構(gòu)圖:
Context-strategy: Strategy+algorithm().........strategy.algorithm();......strategyStrategy{abstract} +algorithm()...ConcreteStrategyA+algorithm()...ConcreteStrategyB+algorithm()...時(shí)序圖:
讀書的好處
1、行萬里路,讀萬卷書。
2、書山有路勤為徑,學(xué)海無涯苦作舟。
3、讀書破萬卷,下筆如有神。
4、我所學(xué)到的任何有價(jià)值的知識都是由自學(xué)中得來的。——達(dá)爾文
5、少壯不努力,老大徒悲傷。
6、黑發(fā)不知勤學(xué)早,白首方悔讀書遲。——顏真卿
7、寶劍鋒從磨礪出,梅花香自苦寒來。
8、讀書要三到:心到、眼到、口到
9、玉不琢、不成器,人不學(xué)、不知義。
10、一日無書,百事荒廢。——陳壽
11、書是人類進(jìn)步的階梯。
12、一日不讀口生,一日不寫手生。
13、我撲在書上,就像饑餓的人撲在面包上。——高爾基
14、書到用時(shí)方恨少、事非經(jīng)過不知難。——陸游
15、讀一本好書,就如同和一個(gè)高尚的人在交談——歌德
16、讀一切好書,就是和許多高尚的人談話。——笛卡兒
17、學(xué)習(xí)永遠(yuǎn)不晚。——高爾基
18、少而好學(xué),如日出之陽;壯而好學(xué),如日中之光;志而好學(xué),如炳燭之光。——?jiǎng)⑾?/p>
19、學(xué)而不思則惘,思而不學(xué)則殆。——孔子
20、讀書給人以快樂、給人以光彩、給人以才干。——培根