版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
實驗8抽象工廠和建造者模式一、實驗目的1、掌握抽象工廠模式的概念、模式結構、適用場景、優(yōu)點和缺點。3、掌握建造者模式的概念、模式結構、適用場景、優(yōu)點和缺點。二、實驗環(huán)境Windows操作系統(tǒng),RationalRose,eclipse>Myeclipse,VSStudio,記事本等等。三、實驗內容1、抽象工廠模式:為創(chuàng)建一組相關或相互依賴的對象提供一個接口,而且無需指定它們的具體類。抽象工廠的模式圖如下所示。模式中包含4個角色,抽象工廠、具體工廠、
抽象產(chǎn)品和具體產(chǎn)品。題目描述:我們在上一節(jié)講了女蝸造人的故事。人是造出來了,世界也熱鬧了,可是低頭一看,都是清一色的類型,缺少關愛、仇恨、喜怒哀樂等情緒,人類的生命太平淡了,女蝸一想,猛然一拍腦袋,記給人類定義性別了,那怎么辦?由于女蝸之前的準備工作花費了非常大的精力,比如準備黃土,準備八卦爐等,從頭開始建立所有的事物也是不可能的,那就想在現(xiàn)有的條件下重新造人,盡可能舊物利用嘛。怎么才能讓人類有愛有恨呢?是神仙當然辦法的了,定義互斥的性別,然后在每個個體中埋下一顆種子:異性相吸,成熟后就一定會去找個異性(這就是我們說的愛情原動力)。從設計角度來看,一個具體的對象通過兩個坐標就可以確定:膚色和性別。朕色▲黃黑,曰黃黑,曰產(chǎn)品類分析完畢了,生產(chǎn)的工廠類該(八卦爐)怎么改造呢?只有一個生產(chǎn)設備,要么生產(chǎn)出全都是男性,要么都是女性,那不行呀,這么大的翻天覆地的改造就是為了產(chǎn)生不同性別的人類。有辦法了!把目前已經(jīng)有的生產(chǎn)設備一一八卦爐拆開,于是女蝸就使用了''八卦拷貝術〃,把原先的八卦爐一個變兩個,并且略加修改,就成了女性八卦爐(只生產(chǎn)女性人種)和男性八卦爐(只生產(chǎn)男性人種),于是乎女蝸就開始準備生產(chǎn)了。根據(jù)描述,請使用抽象工廠模式,畫出UML類圖,實現(xiàn)題目描述的功能。UML類圖:
代碼Humanjavapackagelab?9_l;publicinterfaceHuman{H獲取人類的膚色voidgetColor();H語言voidlanguage();〃性別voidgetSex();BlackPeople.javaWhitePeople.javaYellowPeople.javapackageLab09_l;〃黃種人 —elloiAjPeopleimplementsHuman{elloiAjPeopleimplementsHuman{@OverridepublicvoidgetColor()(//TODOAuto-generatedmethodstubSystem.out.printin("YelloiAjPeople");@OverridepublicvoidLanguage()(//TODOAuto-generatedmethodstubSystern.out.print!n("YelloiAiPeoplespeakChinese!
FemaleBlack.javapackageLab?9_l;publicclassFemaleBlackextendsBlackPeople{|@Overridepublicvoidget5ex(){//TODOAuto-generatedmethodstub
System.out.printin("FemaleBlack!");}MaleBlack.javapackagelab?9_l;publicclassBlackPeoplepublicclassBlackPeoplepublicvoidgetSex(){//TODO//TODOAuto-generatedmethodstubSystem.out.printin("MaleBlack!");FemaleWhite.javaMaleWhite.javapackagelab?9_l;publicclasspublicclassaleWhiteex±endsWhitePeople{@OverridepublicvoidgetSexf){//TODOAuto-generatedmethodstubSystem.out.printin("MaieWhite!");FemaleYellow.javapublicclassFemaLeYelLowextendsYellowPeopLe{I@Overridepublicvoidget5ex(){//TODOAuto-generatedmethodstubSystem.out.printLn("FemaleYellow!;MaleYellow.javapackageLab09_l;IabO9/src/la aIeWhite.javapublicclassMaleYellowex±endsYellowPeople{I^JOverridepublicvoidgetSex(){//TODOAuto-generatedmethodstubSystem.out.println("MaleYellowI");HumanFactory.javapackageLab09_l;publicinterfacepublicHumanpublicHumanpublicHumanHumanFa廿wycreateBlack();createWhite();createYellow();FemaleFactory.javapublicclassimplementsHumanFactory{publicclasspublicHumancreateBLack(){//TODOAuto-generatedmethodstubreturnnewFemaleBlack();publicHumancreatel/Jhite(){//TODOAuto-generatedmethodstubreturnneuFemaleWhite();publicHumancreateYellow(){//TODOAuto-generatedmethodstubreturnnewFernaLeYellow();MaleFactory.javapackagelab?9_l;publicclassJpublicclassJpublicHumancreateBlack(){//TODOAuto-generatedmethodstubreturnnewMaleBlack();}publicHumancreatel/dhite(){//TODOAuto-generatedmethodstubreturnnewMaleWhite();publicHumancreateYellow(){//TODOAuto-generatedmethodstubreturnneuMaleYellow();2、建造者模式應用:將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創(chuàng)建不同的表示。建造者模式的通用類圖:
Product產(chǎn)品類:具體產(chǎn)品。Builder抽象建造者:是為創(chuàng)建一個Product對象的各個部件指定的抽象接口。ConcreteBuilder具體建造者:實現(xiàn)Builder接口,構造和裝配各個部件。Director指揮者:用來根據(jù)用戶的需求構建對象。題目描述:產(chǎn)品:不同風格的house,有中式house、歐式house等,(假設在house類中建立一個私有的String類型的字段來描述house的風格),試用Builder模式建造中式house和歐式house。并創(chuàng)建客戶端,建造一所中式house和一所歐式house,并輸出house的風格。(Builder模式典型UML類圖如下)代碼:House.javapackagelab?9_2;publicclassHousepublicclassHouseprivateStringHouseStyle;publicStringgetHouseStyle(){returnHouseStyle;publicStringgetHouseStyle(){returnHouseStyle;}publicvoidsetHouseStyle(StringhouseStyle){HouseStyle=houseStyle;Bulider.javapackagelab?9_2;publicabstractclassBuilder//protectedHousehouse=newabstractvoidbuildf);abstractHousegetHouse();//{returnhouse;}publicabstractclassBuilder//protectedHousehouse=newabstractvoidbuildf);abstractHousegetHouse();//{returnhouse;}House();BuildEurope.javapackageLab09_2;BuildEuropeex±endsBuilder{publicclassHousehouse=neuHouse();voidbuild(){//TODOAuto-generatedmethodstubhouse.setHouseStyle("EuropestyleI")Syst
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 七年級歷史與社會下冊說課稿(圖片版)第6單元第3課 西北地區(qū) 絲路明珠
- 四川省11市2018年中考語文試卷按考點分項匯編綜合性學習含解析41
- 2024高考語文復習 文言文閱讀 《論語》 專題練習 (含答案解析) (一)
- 2024高考學習計劃(35篇)
- 開題報告-基于微信小程序的模擬考試系統(tǒng)設計與實現(xiàn)+ssm
- 2024民政局離婚協(xié)議書起草要點與實際操作合同3篇
- 2024年簡易住宅轉讓合同
- 2024年高端裝備制造關鍵技術研發(fā)合同
- 2024新能源汽車充電設施運營合同
- 2024年高端制造產(chǎn)業(yè)項目招投標合同
- GB/T 13203-2021摩托車輪胎性能試驗方法
- GA/T 744-2013汽車車窗玻璃遮陽膜
- 2022年杭州市建設行業(yè)職業(yè)技能競賽裝配式建筑施工員賽項技術文件
- 急腹癥試題(單選、多選)
- 2022年部編版四年級道德與法治上冊全冊教案
- 廠房(鋼結構框架)工程施工組織設計施工組織設計DOC
- 人教版新目標九年級英語全冊教案
- 幼兒園教學課件——我是哥哥姐姐
- 國內異形盾構機分析課件
- 喚醒孩子內驅力家校共育家庭教育PPT課件(帶內容)
- 合成氣精脫硫催化劑的研究報告
評論
0/150
提交評論