設計模式實驗4 抽象工廠模式_第1頁
設計模式實驗4 抽象工廠模式_第2頁
設計模式實驗4 抽象工廠模式_第3頁
設計模式實驗4 抽象工廠模式_第4頁
設計模式實驗4 抽象工廠模式_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、PAGE PAGE 18 實驗報告課程: 設計模式實驗 學期: 2010-2011學年 第一學期 任課教師: 專業(yè): 學號: 姓名: 成績: 實驗4 抽象工工廠模式式1.題目: 使使用抽象象工廠模模式實現現一個DDIY電電腦店,其其中的電電腦配置置有三個個種類:學生版版、家庭庭裝、豪豪華版。2.模式設設計的UUML類類圖:3.程序源源代碼:(1)計算算機配置置工廠接接口CoompuuterrConnfigguraatioonFaactoory.javva:publiic intterffacee CommputterCConffiguurattionnFacctorrypubllic Cpuu

2、 crreatteCppu();publlic Ramm crreatteRaam();publlic Maiinbooardd crreatteMaainbboarrd();publlic Harrddiisk creeateeHarrddiisk();publlic Dissplaay ccreaateDDispplayy();(2)計算算機配置置工廠接接口的各各個子類類:publiic claass StuudenntCoompuuterrConnfigguraatioonFaactoory impplemmentts CCompputeerCoonfiigurratiionFFactt

3、oryypubllic Cpuu crreatteCppu() retturnn neww SttudeentCCpu(); publlic Ramm crreatteRaam() retturnn neww SttudeentRRam(); publlic Maiinbooardd crreatteMaainbboarrd() rretuurn neww SttudeentMMainnboaard(); publlic Harrddiisk creeateeHarrddiisk() rretuurn neww SttudeentHHardddissk(); publlic Dissplaay

4、 ccreaateDDispplayy() rretuurn neww SttudeentDDispplayy(); publiic claass HommeCoompuuterrConnfigguraatioonFaactoory impplemmentts CCompputeerCoonfiigurratiionFFacttoryypubllic Cpuu crreatteCppu() retturnn neww HoomeCCpu(); publlic Ramm crreatteRaam() retturnn neww HoomeRRam(); publlic Maiinbooardd

5、crreatteMaainbboarrd() retturnn neww HoomeMMainnboaard(); publlic Harrddiisk creeateeHarrddiisk() retturnn neww HoomeHHardddissk(); publlic Dissplaay ccreaateDDispplayy() rretuurn neww HoomeDDispplayy(); publiic claass DelluxeeCommputterCConffiguurattionnFacctorry iimpllemeentss CoompuuterrConnfiggu

6、raatioonFaactoorypubllic Cpuu crreatteCppu() retturnn neww DeeluxxeCppu(); publlic Ramm crreatteRaam() retturnn neww DeeluxxeRaam(); publlic Maiinbooardd crreatteMaainbboarrd() retturnn neww DeeluxxeMaainbboarrd(); publlic Harrddiisk creeateeHarrddiisk() retturnn neww DeeluxxeHaardddiskk(); publlic

7、Dissplaay ccreaateDDispplayy() retturnn neww DeeluxxeDiispllay(); (3)電腦腦各種配置置的接口口:publiic intterffacee Cppu publlic Strringg tooStrringg();publiic intterffacee Raam publlic Strringg tooStrringg();publiic intterffacee Maainbboarrd publlic Strringg tooStrringg();publiic intterffacee Haardddiskk publli

8、c Strringg tooStrringg();publiic intterffacee Diispllay publlic Strringg tooStrringg();(4)電腦腦配置CCpu接接口的各各個子類類:publiic claass StuudenntCppu iimpllemeentss Cppupubllic Strringg tooStrringg() rretuurn Inntell 奔騰騰雙核 E54400(盒); publiic claass HommeCppu iimpllemeentss Cppupubllic Strringg tooStrringg() re

9、tturnn Inntell 酷睿睿i5 6500(盒); publiic claass DelluxeeCpuu immpleemennts Cpuupubllic Strringg tooStrringg() retturnn Inntell 酷睿睿i7 9800X(至至尊版); (5)電腦腦配置RRam接接口的各各個子類類:publiic claass StuudenntRaam iimpllemeentss Raampubllic Strringg tooStrringg() retturnn 宇瞻瞻2GBB DDDR3 13333(經經典系列列); publiic claass Ho

10、mmeRaam iimpllemeentss Raampubllic Sttrinng ttoSttrinng() retturnn 金士士頓4GGB DDDR33 13333(駭客神神條套裝裝); publiic claass DelluxeeRamm immpleemennts Rammpubllic Strringg tooStrringg() retturnn 海盜盜船TWW3X44G20000CC9DFF; (6)電腦腦配置MMainnboaard接接口的各各個子類類:publiic claass StuudenntMaainbboarrd iimpllemeentss Maainb

11、boarrdpubllic Strringg tooStrringg() retturnn 銘瑄瑄 MSS-M33A8990G; publiic claass HommeMaainbboarrd iimpllemeentss Maainbboarrdpubllic Strringg tooStrringg() reeturrn 技嘉嘉GA-8700A-UUD3; publiic claass DelluxeeMaiinbooardd immpleemennts Maiinbooarddpubllic Strringg tooStrringg() retturnn 華碩碩Rammpagge II

12、II Exttremme; (7)電腦腦配置HHardddissk接口口的各個個子類:publiic claass StuudenntHaardddiskk immpleemennts Harrddiiskpubllic Strringg tooStrringg() retturnn 希捷捷2500GB 72000.112 88M; publiic claass HommeHaardddiskk immpleemennts Harrddiiskpubllic Strringg tooStrringg() retturnn 三星星5000GB 72000轉 16MM(串/金寶); publiic

13、 claass DelluxeeHarrddiisk impplemmentts HHardddisskpubllic Strringg tooStrringg() retturnn 希捷捷Cheeetaah 115K.7 6600GGB; (8)電腦腦配置DDispplayy接口的的各個子子類:publiic claass StuudenntDiispllay impplemmentts DDispplayypubllic Strringg tooStrringg() retturnn 飛利利浦1993E11SB; publiic claass HommeDiispllay impplemm

14、entts DDispplayypubllic Strringg tooStrringg() reeturrn 三星星P24450HH; publiic claass DelluxeeDissplaay iimpllemeentss Diispllaypubllic Strringg tooStrringg() retturnn 戴爾爾UlttraSSharrp 224088WFPP; (9)抽象象產品計計算機類類Commputter.javva:publiic absstraact claass Commputter Striing namme;Cpu cpuu;Ram ramm;Mainn

15、boaard maiinbooardd;Hardddissk hhardddissk;Dispplayy diispllay;publlic absstraact voiid pprepparee();publlic voiid ssetNNamee(Sttrinng nnamee) thiis.namme=nnamee; publlic Strringg geetNaame() retturnn namme; ppubllic Strringg geetCppu() retturnn cpuu.tooStrringg(); ppubllic Strringg geetRaam() rettu

16、rnn ramm.tooStrringg(); ppubllic Strringg geetMaainbboarrd() retturnn maiinbooardd.tooStrringg(); ppubllic Strringg geetHaardddiskk() retturnn harrddiisk.toSStriing(); ppubllic Strringg geetDiispllay() retturnn dissplaay.ttoSttrinng(); (10)抽抽象產品品計算機機類的子子類PreeparreCoompuuterr.jaava:publiic claass Pre

17、eparreCoompuuterr exxtennds CommputterCompputeerCoonfiigurratiionFFacttoryy CoonfiigurratiionFFacttoryy;publlic PreeparreCoompuuterr(CoompuuterrConnfigguraatioonFaactoory ConfiigurratiionFFacttoryy)thiis.ConnfigguraatioonFaactoory = CConffiguurattionnFacctorry;publlic voiid pprepparee()cpuu = Connfi

18、gguraatioonFaactoory.creeateeCpuu();ramm = ConnfigguraatioonFaactoory.creeateeRamm();maiinbooardd = ConnfigguraatioonFaactoory.creeateeMaiinbooardd();harrddiisk = CConffiguurattionnFacctorry.ccreaateHHardddissk();dissplaay = CoonfiigurratiionFFacttoryy.crreatteDiispllay();(11)抽抽象計算算機店類類CommputterSSt

19、orre.jjavaa:publiic absstraact claass CommputterSStorre prottectted absstraact Commputter creeateerCoompuuterr(Sttrinng iitemm);publlic Commputter ordderCCompputeer(SStriing typpe)Commputter commputter = ccreaaterrCommputter(typpe);commputter.preeparre();retturnn coompuuterr;(12)抽抽象計算算機店類類的子類類DIYYCo

20、mmputterSStorre.jjavaa:publiic claass DIYYCommputterSStorre eexteendss CoompuuterrStooreprottectted Commputter creeateerCoompuuterr(Sttrinng iitemm)Commputter commputter = nnulll;CommputterCConffiguurattionnFacctorry sstuddenttConnfigguraatioonFaactoory = new StuudenntCoompuuterrConnfigguraatioonFaa

21、ctoory();CommputterCConffiguurattionnFacctorry hhomeeConnfigguraatioonFaactoory = new HHomeeCommputterCConffiguurattionnFacctorry();CommputterCConffiguurattionnFacctorry ddeluuxeCConffiguurattionnFacctorry = new DDeluuxeCCompputeerCoonfiigurratiionFFacttoryy();if(iteem.eequaals(學生生版)coompuuterr = ne

22、ww PrepaareCCompputeer(sstuddenttConnfigguraatioonFaactoory);coompuuterr.seetNaame(學生生版);elsse if(iitemm.eqqualls(家庭裝裝)coompuuterr = neww PrrepaareCCompputeer(hhomeeConnfigguraatioonFaactoory);coompuuterr.seetNaame(家庭庭裝);elsse if(iitemm.eqqualls(豪華版版)coompuuterr = neww PrepaareCCompputeer(ddeluuxeCC

23、onffiguurattionnFacctorry);coompuuterr.seetNaame(豪華華版);retturnn coompuuterr;(13)實實現用戶戶界面的的主類DDIYSStorre.jjavaa:(由由于代碼碼過長,只只列出主主要部分分)publiic claass DIYYStoore exttendds jjavaax.sswinng.JJFraame ppubllic DIYYStoore() supper(XXXXXX); iniitCoompoonennts(); pprivvatee voiid iinittCommponnentts() jPPaneel

24、1.settBorrderr(jaavaxx.swwingg.BoordeerFaactoory.creeateeTittleddBorrderr(種類類); butttonnGrooup11.addd(jjRaddioBButtton11); jRaadiooButttonn1.ssetTTextt(學學生版); butttonnGrooup11.addd(jjRaddioBButtton22); jRaadiooButttonn2.ssetTTextt(家家庭裝); butttonnGrooup11.addd(jjRaddioBButtton33); jRaadiooButttonn3.s

25、setTTextt(豪豪華版); jPaanell2.ssetBBordder(javvax.swiing.BorrderrFacctorry.ccreaateTTitlledBBordder(配置置); jLaabell1.ssetTTextt(CPUU:);jLLabeel2.settTexxt(內存:); jLaabell3.ssetTTextt(主板:);jLaabell4.ssetTTextt(硬盤:); jLaabell5.ssetTTextt(顯顯示器:);jTeextFFielld1.settTexxt(); jTeextFFielld2.settTexxt();jTeextF

26、Fielld3.settTexxt(); jTeextFFielld4.settTexxt(); jTTexttFieeld55.seetTeext(); jBuuttoon1.settTexxt(退出);jBButtton22.seetTeext(清空空); jBuuttoon3.settTexxt(確定); privaate voiid jjButttonn1AcctioonPeerfoormeed(jjavaa.awwt.eevennt.AActiionEEvennt eevt) Syysteem.eexitt(0); pprivvatee voiid jjButttonn2Acctio

27、onPeerfoormeed(jjavaa.awwt.eevennt.AActiionEEvennt eevt) butttonnGrooup11.cllearrSellecttionn(); jTeextFFielld1.settTexxt();jTeextFFielld2.settTexxt(); jTeextFFielld3.settTexxt();jTeextFFielld4.settTexxt(); jTeextFFielld5.settTexxt(); pprivvatee voiid jjButttonn3AcctioonPeerfoormeed(jjavaa.awwt.eevennt.AActiionEEvennt eevt) Sttrinng coonfiigurratiion = ggetCConffiguurattionn(); jTTexttFieeld11.seetTeext(connfigguraatioon00); jTTexttFieeld22.seetTeext(connfigguraatioon11); jTTexttFieeld33.seetTeext(connfigguraatioon22); jTTexttFieeld44.seetTeext(connfigguraatioon33); jTTexttFieeld55.seetTeex

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論