(完整版)上機(jī)練習(xí)1_第1頁(yè)
(完整版)上機(jī)練習(xí)1_第2頁(yè)
(完整版)上機(jī)練習(xí)1_第3頁(yè)
(完整版)上機(jī)練習(xí)1_第4頁(yè)
(完整版)上機(jī)練習(xí)1_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

上機(jī)練習(xí)11題目:使用簡(jiǎn)單工廠模式設(shè)計(jì)一個(gè)可以創(chuàng)建不同幾何形狀 (如圓形、方形和三角形等)的繪圖工具,每個(gè)幾何圖形都要有繪制 draw()和擦除erase()兩個(gè)方法,要求在繪制不支持的幾何圖形時(shí),提示一個(gè) UnSupportedException。publicclassClient{publicstaticvoidmain(Stringargs[]){try{tuxingtx;Stringshape=XMLUtiltx.getshape();tx=txFducetx(shape);tx.draw();tx.erase();}catch(Exceptione){}}}classXMLUtiltx{//該方法用于從XML配置文件中提取形狀,并返回該形狀名稱publicstaticStringgetshape(){try{//創(chuàng)建文檔對(duì)象DocumentBuilderFactory dFactory =DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=dFactory.newDocumentBuilder();Documentdoc;doc=builder.parse(newFile("configtx.xml"));//獲取包含圖形名稱的文本節(jié)點(diǎn)NodeListnl=doc.getElementsByTagName("shape");NodeclassNode=nl.item(0).getFirstChild();Stringshape=classNode.getNodeValue().trim();returnshape;}catch(Exceptione){e.printStackTrace();returnnull;}}}interfacetuxing{publicvoiddraw();publicvoiderase();}classtriangleimplementstuxing{publicvoiddraw(){正在繪制三角形");}publicvoiderase(){正在擦除三角形");}}classrectangleimplementstuxing{publicvoiddraw(){正在繪制方形");}publicvoiderase(){正在擦除方形");}}classcircleimplementstuxing{publicvoiddraw(){正在繪制圓形");}publicvoiderase(){正在擦除圓形");}}classtxFactory{publicstatictuxingproducetx(Stringshape)throwsException{if(shape.equalsIgnoreCase("triangle")){繪制三角形");returnnewtriangle();}elseif(shape.equalsIgnoreCase("rectangle")){繪制方形!");returnnewrectangle();}elseif(shape.equalsIgnoreCase("circle")){繪制圓形!");returnnewcircle();}else{thrownewException("對(duì)不起,不支持繪制該圖形! ");}}}題目:使用簡(jiǎn)單工廠模式模擬女媧(Nvwa)造人(Person),如果傳入?yún)?shù)M,則返回一個(gè)Man對(duì)象,如果傳入?yún)?shù)W,則返回一個(gè)Woman對(duì)象,用Java語(yǔ)言實(shí)現(xiàn)該場(chǎng)景。現(xiàn)需要增加一個(gè)新的Robot類,如果傳入?yún)?shù)R,則返回一個(gè)Robot對(duì)象,對(duì)代碼進(jìn)行修改并注意女媧的變化。publicclassClient{publicstaticvoidmain(Stringargs[]){try{Peoplep;Stringsex=XMLUtilpeople.getsex();p=Nducepeople(sex);p.makepeople();}catch(Exceptione){}}}classXMLUtilpeople{//該方法用于從XML配置文件中提取性別,并返回該性別publicstaticStringgetsex(){try{//創(chuàng)建文檔對(duì)象DocumentBuilderFactory dFactory =DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=dFactory.newDocumentBuilder();Documentdoc;doc=builder.parse(newFile("configpeople.xml"));//獲取包含性別的文本節(jié)點(diǎn)NodeListnl=doc.getElementsByTagName("sex");NodeclassNode=nl.item(0).getFirstChild();Stringsex=classNode.getNodeValue().trim();returnsex;}catch(Exceptione){e.printStackTrace();returnnull;}}}interfacePeople{publicvoidmakepeople();}classManimplementsPeople{publicvoidmakepeople(){女媧造人——男");}}classWomanimplementsPeople{publicvoidmakepeople(){女媧造人——女");}}classRobotimplementsPeople{publicvoidmakepeople(){女媧造人——機(jī)器人");}}classNvwa{publicstaticPeopleproducepeople(Stringsex)throwsException{if(sex.equalsIgnoreCase("M")){女媧造出一個(gè)男孩!");returnnewMan();}elseif(sex.equalsIgnoreCase("W")){女

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論