




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
...wd......wd......wd...實(shí)驗(yàn)1:ACME軟件體系構(gòu)造描述語(yǔ)言應(yīng)用一、實(shí)驗(yàn)?zāi)康?〕掌握軟件體系構(gòu)造描述的概念2〕掌握應(yīng)用ACMESTUDIO工具描述軟件體系構(gòu)造的根本操作二、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)。三、實(shí)驗(yàn)環(huán)境計(jì)算機(jī)及ACMESTUDIO。四、實(shí)驗(yàn)內(nèi)容利用ACME語(yǔ)言定義軟件體系構(gòu)造風(fēng)格,修改ACME代碼,并進(jìn)展風(fēng)格測(cè)試。五、實(shí)驗(yàn)操作步驟一、導(dǎo)入Zip文檔建設(shè)的一個(gè)AcmeProject,并且命名為AcmeLab2。如以下列圖:接著導(dǎo)入ZIP文檔,導(dǎo)入完ZIP文檔后顯示的如以下列圖:二、修改風(fēng)格在AcmeLab2工程中,翻開(kāi)families下的TieredFam.acme.如以下列圖:修改組件外觀1.在組件類(lèi)型中,雙擊DataNodeT;在其右邊的編輯器中,將產(chǎn)生預(yù)覽;選擇Modify按鈕,將翻開(kāi)外觀編輯器對(duì)話(huà)框。2.首先改變圖形:找到Basicshapesection,在Stockimagedropdownmenu中選擇Repository類(lèi)型.3.在Color/LinePropertiessection修改填充顏色為深藍(lán)色。4.在顏色對(duì)話(huà)框中選擇深藍(lán)色,并單擊[OK].5.修改圖形的邊框顏色為綠色7.單擊Labeltab,在FontSettingssection,設(shè)置字體顏色為白色,單擊[OK]產(chǎn)生的圖形如以下列圖:添加新元素類(lèi)型1.在ComponentTypessection選擇New按鈕2.在對(duì)話(huà)框中,類(lèi)型名稱(chēng)輸入LogicNodeT.3.選擇TierNodeT為父類(lèi)型.4.單擊[Finish].5.按照修改外觀的步驟,修改LogicNodeT的外觀:填充顏色為淺綠色,邊框顏色為黑色,大小為2,其他默認(rèn)。產(chǎn)生的圖形如以下列圖:添加新屬性類(lèi)型1.選擇PropertyTypes2.選擇New按鈕3.在對(duì)話(huà)框中,類(lèi)型名稱(chēng)為T(mén)ierPropT4.類(lèi)型選擇enum5.值為:client,logic,data6.單擊[OK].添加屬性1.激活屬性視圖頁(yè)2.雙擊TierNodeT3.選擇Propertiestab4.右擊空白位置,或者單擊圖標(biāo),選擇新建屬性5.屬性名為tier.6.類(lèi)型為T(mén)ierPropT〔找不到,則直接輸入TieredFam.TierPropT〕7.單擊[OK].添加規(guī)則1.單擊Familyeditor中的TieredFam(Presstoselect).2.選擇屬性視圖中的規(guī)則頁(yè)3.單擊生成新規(guī)則4.規(guī)則名為hostCheck,選擇invariant單項(xiàng)選擇項(xiàng)5.在規(guī)則框中輸入〔直接粘貼過(guò)去〕Forallt1:TierNodeTinself.Components|!t1.allowShareHost->(Forallt2:TierNodeTinself.Components|t1!=t2->t1.host!=t2.host)6.單擊[ParseRule]以確認(rèn)無(wú)語(yǔ)法錯(cuò)誤,有錯(cuò)誤,要重新寫(xiě)。7.在標(biāo)簽中輸入“Tiernodesrespecthostassignment.〞8.在出錯(cuò)標(biāo)簽中輸入“Twonodesthatcannotshareahostmustnotresideonthesamehost.〞9.單擊[OK]。假設(shè)前面有語(yǔ)法錯(cuò)誤,按鈕是灰色的10.保存.Acme代碼編輯1.查看編輯器底端的區(qū)域,有3個(gè)區(qū):Overview,AcmeSourceandFamily–TieredFam.選擇Source2.在代碼中找到TierNodeT3.復(fù)制其中的屬性?xún)?nèi)容4.定位至ClientNodeT,粘貼剛剛復(fù)制的內(nèi)容5.把tier屬性的值賦值為client.ComponentTypeClientNodeTextendsTierNodeTwith{Propertytier:TierPropT=client;}6.同樣把復(fù)制的內(nèi)容粘貼在LogicNodeT和DataNodeT中,前者的tier值為logic,后者的tier值為data.7.單擊TieredFameditortab,假設(shè)有錯(cuò),將指出錯(cuò)誤添加可視變量1.編輯LogicNodeT組件的外觀2.選擇Variantstab.3.單擊[New…]創(chuàng)立新的變量4.名為:Notlogictier.5.選擇基于條件的單項(xiàng)選擇按鈕6.下拉菜單項(xiàng)選擇擇allowSharedHost,條件選擇==,值輸入false7.設(shè)置填充顏色為深綠色8.單擊[OK]測(cè)試風(fēng)格1.在Navigator的AcmeLab2中,單擊右鍵,在彈出式菜單中選擇NewAcmeSystem.2.系統(tǒng)名為T(mén)estSystem.4.單擊[Next].5.在風(fēng)格類(lèi)型中,選擇的內(nèi)容如以下列圖所示。6.單擊[Finish]Noticethepaletteoftypesontheleftfromwhichyoucandraganddropanelementtocreateaninstance.7.在右邊的palette面板中,拖入4個(gè)clientnodes和1個(gè)logicnode,并具有4個(gè)ports,同時(shí)拖入4個(gè)connectors,實(shí)現(xiàn)客戶(hù)端和邏輯層的連接。實(shí)驗(yàn)2:SOA實(shí)踐一、實(shí)驗(yàn)?zāi)康?〕初步了解SOA的體系構(gòu)造2〕掌握用Webservice技術(shù)實(shí)現(xiàn)SOA二、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)。三、實(shí)驗(yàn)環(huán)境計(jì)算機(jī)及VS2005。四、實(shí)驗(yàn)內(nèi)容Webservice實(shí)現(xiàn)。六、實(shí)驗(yàn)操作步驟內(nèi)容一:WebServices實(shí)現(xiàn)步驟:1創(chuàng)立WEB服務(wù)翻開(kāi)VS.NET2005,新建一個(gè)網(wǎng)站,在對(duì)話(huà)框中選擇“ASP.NETWEB服務(wù)〞,選擇好位置,把Website1改為“IMPLEMENTWS〞,單擊確定。2〕展開(kāi)解決方案資源管理器,在“APP_CODE〞下創(chuàng)立3個(gè)文件夾,依次命名為:DA,Model,Util,見(jiàn)以下列圖:3〕右擊DA文件夾,選擇添加新項(xiàng),新增一個(gè)類(lèi):DataAccess.cs,按同樣的方法,在MODEL和UTIL文件夾中,添參加以下列圖所示的類(lèi)。4〕右擊工程,選擇添加引用〔注意不是Web引用〕,選擇瀏覽頁(yè),定位拷貝的DLL,見(jiàn)以下列圖5〕完成DATA.CS的代碼6〕完成DataAccess.CS的代碼7〕完成ActivityIdHeader.cs8〕雙擊Service.CS文件,完成代碼9〕編譯,并運(yùn)行,查看效果。一個(gè)WEB服務(wù)編寫(xiě)完成。2創(chuàng)立WINDOWS應(yīng)用1〕右擊解決方案,選擇添加-》新工程2〕按以下列圖完成:3〕右擊工程,選擇添加引用〔注意不是Web引用〕,選擇瀏覽頁(yè),定位拷貝的DLL,見(jiàn)以下列圖4〕右擊工程,新建文件夾,并在其下新增一個(gè)類(lèi),并完成代碼,如以下列圖所示5〕添加Web引用,右擊工程,選擇添加WEB引用,在URL中輸入,WEB服務(wù)的地址,然后單擊前進(jìn),可以修改引用名,單擊“添加引用〞按鈕6〕雙擊FORM1.CS,在窗體上放置一個(gè)按鈕和一個(gè)標(biāo)簽,其中標(biāo)簽命名為Result,按鈕的text為“getdata〞7〕雙擊按鈕,完成以下代碼8〕右擊工程,新增一個(gè)類(lèi):UptoLogEvents.cs9〕雙擊PROGRAM.CS,完成代碼10〕設(shè)置APPFORWEBSERVICE為啟開(kāi)工程,運(yùn)行,查看結(jié)果實(shí)驗(yàn)3:MDA實(shí)踐一、實(shí)驗(yàn)?zāi)康?〕初步了解MDA的框架。2〕了解PSM到CODE的過(guò)程。3〕掌握應(yīng)用ECO實(shí)現(xiàn)MDA過(guò)程。二、實(shí)驗(yàn)學(xué)時(shí)6學(xué)時(shí)。三、實(shí)驗(yàn)環(huán)境計(jì)算機(jī)及STARUML和VS2005。四、實(shí)驗(yàn)內(nèi)容〔1〕StarUML實(shí)踐五、實(shí)驗(yàn)操作步驟實(shí)驗(yàn)內(nèi)容一:StarUML實(shí)踐安裝:首先,我們必須先安裝將要使用的軟件。StarUML,是一個(gè)開(kāi)放源碼軟件,遵循GPL協(xié)議許可〔GNU公共許可證〕,并免費(fèi)提供下載。啟動(dòng)安裝以后就可以啟動(dòng)該程序。添加新工程在NewProjectByApproach的對(duì)話(huà)框會(huì)彈出。選擇“EmptyProject〞并且按下"確定"。選擇模塊在右邊的“ModelExplorer〞框中選定“Untitled〞模塊。添加模塊通過(guò)“Model〞主菜單,或右擊選定的模型,可以"Add/Model"添加類(lèi)圖通過(guò)“Model〞主菜單,或右擊選定模型,可以“AddDiagram/ClassDiagram〞:設(shè)置profile通過(guò)“Model/Profile...〞菜單去設(shè)置工程所需的profile。這決定了工程所使用的規(guī)則和約定。根據(jù)語(yǔ)言,選擇不同的Profile,比方JAVA,一定要包含"JAVAPorfile"這一工程;比方C#,一定要包含"C#Porfile"這一工程。保存工程保存工程,命名為L(zhǎng)AB3.UML創(chuàng)造圖表從默認(rèn)就在屏幕的左邊的“Toolbox〞選擇“類(lèi)〞圖標(biāo),然后左鍵單擊diagram窗口的某處。這樣就使用通用名字創(chuàng)造了一個(gè)新的類(lèi)。雙擊,將類(lèi)改名為Circle。添加屬性右擊圖中的目標(biāo),在彈出菜單中選擇“Add〞中的“Attribute〞(被標(biāo)示為綠色),為其添加一個(gè)屬性(或者域),填入期望的名字“_radius〞。具體的數(shù)據(jù)類(lèi)型,在屬性面板〔右下側(cè)的窗口〕,由雙打字,在"類(lèi)型"時(shí)段。在窗體右下邊的Properties面板中,找到“Type〞輸入框,輸入double作為_(kāi)radius屬性的類(lèi)型。類(lèi)的內(nèi)部數(shù)據(jù)〔域/屬性〕都是私有的,因?yàn)樗麄兪菄?yán)格由類(lèi)內(nèi)部使用的。所以,在Properties面板中將_radius設(shè)置為“私有〞繼續(xù)進(jìn)展設(shè)計(jì)重復(fù)同樣的過(guò)程,添加所謂的名字叫做Rectangle的類(lèi)和double型的私有成員_width和_height。創(chuàng)造IShapeinterface從toolbox中,選擇“Interface〞,并點(diǎn)擊圖表的某處。將其改名為IShape。創(chuàng)立以后,選中它。在頂部工具欄,選擇“StereotypeDisplay〞下拉按鈕,將值改變?yōu)椤癗one〞。這將改變以往的圓形形狀,使其變?yōu)槌砷L(zhǎng)方形。還是在頂部工具欄,取消選中"SuppressOperations"。這將使我們能夠看到接口所擁有的方法。向IShape接口添加返回值為double的getArea方法??梢酝ㄟ^(guò)右擊interface的圖標(biāo),在彈出菜單中點(diǎn)擊紅色的“Operation〞按鈕,然后輸入getArea。設(shè)定返回值類(lèi)型。在“ModelExplorer〞中展開(kāi)IShape節(jié)點(diǎn),右擊你剛剛創(chuàng)立的getArea方法,并選擇“AddParameter〞。在“Properties〞框中,將參數(shù)的名子變?yōu)榭?,將“DirectionKind〞變?yōu)椤癛ETURN〞,將“Type〞變?yōu)閐boule。將IShape和getArea的IsAbstract屬性框打上勾,他們?cè)趫D標(biāo)上的名字將變?yōu)樾斌w。這是UML的標(biāo)準(zhǔn),表示這是接口或者其他純虛實(shí)體。添加類(lèi)和接口的關(guān)系可以通過(guò)從toolbox中選擇表示“Realization〞的箭頭,并從Circle拖拽向IShape,使Circle實(shí)現(xiàn)接口IShape。重復(fù)同樣的過(guò)程,為Rectangle添加實(shí)現(xiàn)關(guān)系。這是添加了Circle和Rectangle對(duì)于IShape接口的實(shí)現(xiàn)關(guān)系。如果想使連接線(xiàn)表現(xiàn)為直角的方式,右擊連接線(xiàn),并選擇"Format/LineStyle/Rectilinear"菜單。你通過(guò)這種方式,使箭頭重疊在一起,可以使你的圖看起來(lái)更整潔。添加類(lèi)基于接口的行為由于Circle和Rectangle類(lèi)都實(shí)現(xiàn)了IShape接口,就必須有同樣的行為(方法)。在“ModelExplorer〞面板中,復(fù)制getArea法(按Ctrl-C或者右鍵點(diǎn)擊并選擇Copy菜單〕,并粘貼到Circle和Rectangle類(lèi)。這些實(shí)現(xiàn)了的方法在Circle和Rectangle類(lèi)中都不是抽象的,而是具體的。這是因?yàn)樗麄儗?shí)際上是執(zhí)行一些特定行為〔例如,為一個(gè)圓形和長(zhǎng)方形分別計(jì)算面積〕,所以不要勾選IsAbstract框。添加Pizza類(lèi)向Pizza添加double型的私有域_price。添加返回double類(lèi)型的共有操作getPrice。為Pizza類(lèi)添加IShape的引用從toolbox中選擇"DirectedAssociation"箭頭,點(diǎn)擊Pizza類(lèi),并向IShape拖拽。選中箭頭,在右邊的“Properties〞框上,將name一欄改為“has-a〞,“End1.Aggregation〞一欄改為“AGGREGATE〞(這個(gè)圖示說(shuō)明Pizza和shape對(duì)象是“聚合“的關(guān)系)。將“End2.Name〞一欄改為_(kāi)shape。這樣就自動(dòng)為Pizza添加一個(gè)名字為_(kāi)shape,使用IShape接口的私有域,的所謂_shape型ishape以pizza餅。將“End2.Visibility〞改為私有。為_(kāi)shape創(chuàng)立一個(gè)“獲得者〞方法,名字叫做getShape,返回IShape。這就是創(chuàng)立一個(gè)行為,名字是getShape,返回IShape。為pizza類(lèi)添加構(gòu)造函數(shù)為Pizza添加構(gòu)造函數(shù),右擊,在彈出的“Add〞菜單中選擇“Operation〞。從這里,增加一個(gè)普通的帶有dboule型price參數(shù)和IShape類(lèi)型shape參數(shù)的操作增加一個(gè)輸入?yún)?shù),就像之前增加了一個(gè)返回型的輸出參數(shù)一樣,你指定的參數(shù)的名稱(chēng),如價(jià)格和形狀等,以及適當(dāng)?shù)臄?shù)據(jù)類(lèi)型。為Circle增加一個(gè)帶有double型的radius參數(shù)的構(gòu)造函數(shù)。為Rectangle增加一個(gè)帶有double型width和height參數(shù)的構(gòu)造函數(shù)。添加Test_Pizza類(lèi)為了說(shuō)明UML類(lèi)圖更多的功能,又增加了一個(gè)叫做“Test_Pizza〞的類(lèi),它用作測(cè)試目的,并使用到Pizza和IShape類(lèi)。兩個(gè)類(lèi)之間的關(guān)系有多種形式。舉例來(lái)說(shuō),一個(gè)類(lèi)可以實(shí)例化另一個(gè)類(lèi),而不是將其作為一個(gè)成員。又或,一類(lèi)的方法可能需要另一個(gè)類(lèi)作為輸入?yún)?shù),保存一個(gè)引用僅僅是為這個(gè)方法的執(zhí)行。通過(guò)從toolbox中選擇“Dependency〞箭頭,從一個(gè)類(lèi)拖向他所以來(lái)的類(lèi),來(lái)添加不通類(lèi)之間的依賴(lài)關(guān)系。在這個(gè)例子中,Test_Pizza依賴(lài)于Pizza,Circle和Rectangle類(lèi),因?yàn)樗鼘?shí)例化了它們。從Propertiesbox選擇name屬性,或者雙擊圖表上的“依賴(lài)線(xiàn)〞,可以為依賴(lài)關(guān)系添加標(biāo)簽。特別的是,當(dāng)一類(lèi)實(shí)例化另一個(gè)類(lèi),我們會(huì)把依賴(lài)線(xiàn)叫做“instantiates〞。你可以選中并拖動(dòng)依賴(lài)線(xiàn)的標(biāo)簽,以到達(dá)更美觀的效果。依賴(lài)關(guān)系不會(huì)影響代碼生成。生成代碼:根據(jù)不同的語(yǔ)言,選擇不同的菜單,假設(shè)JAVA,點(diǎn)擊主菜單的“Tools->Java〞菜單,選擇“GenerateCode〞;假設(shè)C#,點(diǎn)擊主菜單的“Tools->C#〞菜單,選擇“GenerateCode〞。從對(duì)話(huà)框中選擇你的模塊(這里可能Model1),點(diǎn)擊“Next〞。為了使你的模塊或者圖標(biāo)的所有類(lèi)都生成stubcode,選擇“SelectAll〞然后按“Next〞。選擇一個(gè)有效的輸出目錄,“Next〞。假設(shè)C#,請(qǐng)務(wù)必選中“GeneratetheDocumentationbyC#Doc〞,“GenerateemptyC#Doc〞,假設(shè)JAVA,請(qǐng)務(wù)必選中“GeneratetheDocumentationbyJAVADoc〞,“GenerateemptyJAVADoc〞,所有其他復(fù)選框不選中,“Next〞?,F(xiàn)在StarUML將從你的圖產(chǎn)生代碼,點(diǎn)擊“Finish〞退出對(duì)話(huà)框?,F(xiàn)在,您可以編輯生成的代碼,以增加應(yīng)用。添加實(shí)現(xiàn)代碼現(xiàn)在就開(kāi)場(chǎng)定義程序?qū)嶋H做的事情,例如,為圖標(biāo)中的類(lèi)描述添加實(shí)現(xiàn)代碼。逆向工程StarUML還可以從現(xiàn)有的Java/C#代碼創(chuàng)立一個(gè)類(lèi)圖,這被稱(chēng)為“reverseengineering〞,當(dāng)想從現(xiàn)有的代碼生成圖表,或者你修改了SU生成的代碼,并且想在圖表中反響出來(lái)的時(shí)候,逆向工程功能就非常有用了。到主菜單欄中選擇“Tools/C#或Java/ReverseEngineer...〞,可以將現(xiàn)有的代碼逆向工程。選擇C#/Java代碼所在的目錄,并點(diǎn)擊“Add〞或“AddAll〞按鈕,將它們包括在逆向工程過(guò)程中,然后單擊“Next〞選擇想將類(lèi)參加的模塊,這里可能是“Model1〞,然后“Next〞。在OptionSetup里面:確認(rèn)“public〞,“package〞,“protected〞和“private〞是選中的〔這是默認(rèn)設(shè)置〕。同樣,在默認(rèn)情況下,單項(xiàng)選擇按鈕“CreatethefieldtotheAttribute〞也是選中的。除非你想SU創(chuàng)立其他東西,例如布局很糟糕的包含所有類(lèi)的圖表,不要選中“CreateOverviewDiagram〞框。當(dāng)你對(duì)選項(xiàng)做了檢查后,點(diǎn)擊“Run〞。點(diǎn)擊"完成"退出對(duì)話(huà)框時(shí),就完成了。SU會(huì)向模塊添加導(dǎo)入的類(lèi),但不是的圖表。為了將它添加到圖,只需要簡(jiǎn)單地從ModelExplorer拖動(dòng)它們即可。實(shí)驗(yàn)4:MVC實(shí)踐一、實(shí)驗(yàn)?zāi)康?〕初步了解軟件體系設(shè)計(jì)的根本概念2〕應(yīng)用設(shè)計(jì)模式實(shí)現(xiàn)MVC二、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)。三、實(shí)驗(yàn)環(huán)境計(jì)算機(jī)及VS2005。四、實(shí)驗(yàn)內(nèi)容利用Observer模式實(shí)現(xiàn)MVC。五、實(shí)驗(yàn)操作步驟步驟:1〕翻開(kāi)VS.NET2005,新建一個(gè)工程,工程類(lèi)型選擇Windows,模板選擇Windows應(yīng)用程序,名稱(chēng)為MVC_IMPL,選擇好位置,單擊確定。2〕右擊工程,選擇“添加->新建項(xiàng)〞,在模板中選擇“接口〞,名稱(chēng)為Observer.cs,單擊添加按鈕。3〕同樣方法,添加Subject.CS接口。4〕雙擊Observer.CS文件,在接口里面定義一個(gè)方法:voidsendNotify(stringmessage);5〕雙擊Subject.CS文件,在接口里面定義一個(gè)方法:voidregisterInterest(Observerobs);6〕展開(kāi)解決方案資源管理器,將FORM1.CS修改為Controller.CS,在彈出的信息框中,單擊確定按鈕,單擊窗體,在窗體的屬性對(duì)話(huà)框中,設(shè)置Text屬性為:顏色Controller。修改后效果如以下列圖1所示圖17〕單擊圖上的紅色圓圈的圖標(biāo)。8〕從左邊的工具欄見(jiàn)圖,拖一個(gè)GroupBox控件至窗體上,并拖動(dòng)位置和設(shè)置大小效果,在屬性對(duì)話(huà)框中,設(shè)置其Text屬性為:顏色選擇器,如以下列圖。9〕從工具箱拖三個(gè)radioButton控件,name屬性分別設(shè)置為rbtnRed,rbtnGreen,rbtnBlue,Text屬性分別設(shè)置為“紅色〞,“綠色〞,“藍(lán)色〞,并設(shè)置好位置,效果如圖3所示。10〕切換至代碼模式,添加usingSystem.Collections引用,添加controller的父接口:Subject,并添加一個(gè)私有成員,效果見(jiàn)圖4。圖411〕定義單擊單項(xiàng)選擇按鈕方法,代碼如圖5所示。圖512〕實(shí)現(xiàn)Subject接口的registerInterest方法,如圖6所示。圖613〕右擊工程,選擇“添加->新建項(xiàng)〞,在模板中選擇“Window窗體〞,名稱(chēng)為ViewList.cs,單擊添加按鈕。14〕將ViewList窗體的Text屬性設(shè)置為:列表視圖。15〕從工具欄中拖入ListBox控件,設(shè)置Name為lbColor。16〕切換至代碼模式,添加ViewList的父接口:Observer。17〕實(shí)現(xiàn)接口的方法,見(jiàn)圖8。圖818〕定義Init方法,見(jiàn)圖9。圖919〕修改ViewList的構(gòu)造函數(shù),見(jiàn)圖10。圖1020〕右擊工程,選擇“添加->新建項(xiàng)〞,在模板中選擇“Window窗體〞,名稱(chēng)為ViewColor.cs,單擊添加按鈕。21〕將ViewColor窗體的Text屬性設(shè)置為:顏色視圖。22〕從工具欄中拖入PictureBox控件,設(shè)置Name為pbColor,設(shè)置BackColor為ActiveCaptionText。23〕切換至代碼模式,添加usingSystem.Collections引用,添加ViewColor的父接口:Observer,并定義一些私有成員,效果見(jiàn)圖11。圖1124〕定義PictureBox繪圖方法,見(jiàn)圖12。圖1225〕定義Init方法,見(jiàn)圖13。圖1326〕實(shí)現(xiàn)接口的方法,見(jiàn)圖14。圖1427〕修改ViewColor的構(gòu)造函數(shù),見(jiàn)圖15圖1528〕切換至Controller的代碼模式,添加Init方法,并在Controller類(lèi)的構(gòu)造函數(shù)中調(diào)用它,見(jiàn)圖16。圖16實(shí)驗(yàn)5:產(chǎn)品族實(shí)踐一、實(shí)驗(yàn)?zāi)康?〕初步了解軟件產(chǎn)品線(xiàn)和產(chǎn)品族的概念2〕應(yīng)用設(shè)計(jì)模式實(shí)現(xiàn)產(chǎn)品族二、實(shí)驗(yàn)學(xué)時(shí)2學(xué)時(shí)。三、實(shí)驗(yàn)環(huán)境計(jì)算機(jī)及VS2005。四、實(shí)驗(yàn)內(nèi)容利用抽象工廠模式實(shí)現(xiàn)產(chǎn)品族。五、實(shí)驗(yàn)操作步驟內(nèi)容:利用抽象工廠模式實(shí)現(xiàn)產(chǎn)品族步驟:1〕翻開(kāi)VS.NET2005,新建一個(gè)工程,工程類(lèi)型選擇Windows,模板選擇Windows應(yīng)用程序,名稱(chēng)為PL_IMPL,選擇好位置,單擊確定。2〕右擊工程,選擇“添加->新建項(xiàng)〞,在模板中選擇“類(lèi)〞,名稱(chēng)為Plant.cs,單擊添加按鈕,并完成如圖1所示的代碼。圖13〕同樣方法,添加Garden.CS類(lèi),并完成如圖2所示的代碼。圖24〕右擊工程,選擇“添加->新建項(xiàng)〞,在模板中選擇“類(lèi)〞,名稱(chēng)為VeggieGarden.cs,單擊添加按鈕,并完成如圖3所示的代碼。圖35〕右擊工程,選擇“添加->新建項(xiàng)〞,在模板中選擇“類(lèi)〞,名稱(chēng)為MeatGarden.cs,單擊添加按鈕,并完成如圖4所示的代碼。圖46〕右擊工程,選擇“添加->新建項(xiàng)〞,在模板中選擇“組件類(lèi)〞,名稱(chēng)為GardenPicture.cs,單擊添加按鈕,并完成如圖5所示的代碼。圖57〕單擊菜單,選擇“生成->生成解決方案〞,或者按F6。8〕展開(kāi)解決方案資源管理器,將FORM1的Text屬性設(shè)置為:“農(nóng)/牧場(chǎng)主〞。9〕在工具箱中,展開(kāi)工程組件〔本實(shí)驗(yàn)是PL_IMPL組件〕,將組件GardenPicture拖入Form1窗體,并設(shè)置BackColor屬性為:ActiveCaptionText;BorderStyle為:Fixed3D;并調(diào)整好大小,見(jiàn)圖6。圖610〕從工具箱中,拖放3個(gè)CheckBox和2個(gè)RadioButton,屬性設(shè)置見(jiàn)表1,見(jiàn)圖6。表1控件Name屬性Text屬性CheckBox1ckbCenterCenterCheckBox2ckbBorderBorderCheckBox3ckb
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 農(nóng)業(yè)產(chǎn)品棉花購(gòu)銷(xiāo)合同書(shū)(3篇)
- 機(jī)床專(zhuān)業(yè)知識(shí)培訓(xùn)課件
- 內(nèi)科護(hù)理學(xué)課程肺結(jié)核課件
- 個(gè)人借款抵押車(chē)合同
- 2025年哈爾濱年貨運(yùn)從業(yè)資格證考試題庫(kù)
- 2025年青海年貨運(yùn)從業(yè)資格證考試答案
- 掘進(jìn)機(jī)出租承包協(xié)議書(shū)
- 2025年張掖貨運(yùn)運(yùn)輸駕駛員從業(yè)資格證考試試題
- 垃圾填埋場(chǎng)垃圾壓實(shí)技術(shù)
- 高分子材料壓縮模量測(cè)量
- 固定翼無(wú)人機(jī)飛行原理課件
- 《母嬰護(hù)理》課程標(biāo)準(zhǔn)
- 軟基處治面積四方聯(lián)測(cè)測(cè)量記錄表(清淤后)
- 考試通用答題卡word模板
- 尾礦庫(kù)安全檢查表
- 解除、終止勞動(dòng)合同通知書(shū)范本
- 勞動(dòng)定額定員標(biāo)準(zhǔn)化1(孫義敏)
- 深信服桌面云方案
- 2021年深圳實(shí)驗(yàn)學(xué)校初中部七年級(jí)入學(xué)分班考試數(shù)學(xué)試卷及答案解析
- ??怂箍等鴺?biāo)測(cè)量?jī)x的使用課件
- 高血壓臨床路徑
評(píng)論
0/150
提交評(píng)論