




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
上機(jī)練習(xí)11題目:使用簡單工廠模式設(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ì)不起,不支持繪制該圖形! ");}}}題目:使用簡單工廠模式模擬女媧(Nvwa)造人(Person),如果傳入?yún)?shù)M,則返回一個(gè)Man對(duì)象,如果傳入?yún)?shù)W,則返回一個(gè)Woman對(duì)象,用Java語言實(shí)現(xiàn)該場景?,F(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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政管理中的流程優(yōu)化案例研究試題及答案
- 行政管理的法治思維試題及答案
- 行政管理中的決策支持系統(tǒng)試題及答案
- 行政管理議題研究試題及答案
- 2025正規(guī)的合租房屋租賃合同樣本
- 2025快餐店臨時(shí)工雇傭合同
- 建筑工程現(xiàn)場安全管理的新方法試題及答案
- 行政管理自考實(shí)務(wù)問題試題及答案
- 2025設(shè)備產(chǎn)品買賣合同模板
- 2025企業(yè)茶葉收購管理經(jīng)營承包合同模板
- 畢業(yè)論文如何通過具體數(shù)據(jù)及案例加以佐證和分析
- 北京市朝陽區(qū)2022-2023學(xué)年六年級(jí)數(shù)學(xué)第二學(xué)期期末教學(xué)質(zhì)量檢測模擬試題含解析
- LED顯示屏生產(chǎn)作業(yè)指導(dǎo)書 生產(chǎn)過程控制工作指引
- 室間質(zhì)評(píng)不合格原因分析及糾正措施表
- 水稻育種課件 第八講三系雜交水稻育種
- 工業(yè)烘干機(jī)使用說明書
- 自殺行為防范與護(hù)理
- 排水管網(wǎng)清淤疏通方案
- 空防安全威脅應(yīng)對(duì)措施與異常行為識(shí)別基礎(chǔ)
- 礦山地質(zhì)災(zāi)害危險(xiǎn)性評(píng)估要點(diǎn)
- 泰勒斯威夫特英文介紹演示文稿
評(píng)論
0/150
提交評(píng)論