




版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 黑龍江工業(yè)學(xué)院《生物醫(yī)學(xué)信息與統(tǒng)計(jì)學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 陽(yáng)光學(xué)院《流體傳動(dòng)與控制基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 武漢海事職業(yè)學(xué)院《單片機(jī)原理與應(yīng)用綜合設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 大興安嶺職業(yè)學(xué)院《企業(yè)電子產(chǎn)品設(shè)計(jì)與制造》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川汽車職業(yè)技術(shù)學(xué)院《科學(xué)社會(huì)主義概論》2023-2024學(xué)年第二學(xué)期期末試卷
- 雙頭應(yīng)急燈項(xiàng)目效益評(píng)估報(bào)告
- 沈陽(yáng)音樂學(xué)院《內(nèi)科護(hù)理學(xué)(2)》2023-2024學(xué)年第二學(xué)期期末試卷
- 鄭州商貿(mào)旅游職業(yè)學(xué)院《社會(huì)治理》2023-2024學(xué)年第二學(xué)期期末試卷
- 伊犁師范大學(xué)《中職英語(yǔ)微格教學(xué)技能訓(xùn)練》2023-2024學(xué)年第二學(xué)期期末試卷
- 人教版初中歷史與社會(huì)七年級(jí)上冊(cè) 3.5 干旱的寶地-塔里木盆地 教學(xué)設(shè)計(jì)
- 醫(yī)院骨科專病數(shù)據(jù)庫(kù)建設(shè)需求
- 三年級(jí)下冊(cè)混合計(jì)算100題及答案
- 中小學(xué)幼兒園安全風(fēng)險(xiǎn)防控工作規(guī)范
- ESD技術(shù)要求和測(cè)試方法
- 正確認(rèn)識(shí)民族與宗教的關(guān)系堅(jiān)持教育與宗教相分離
- 宜黃縣二都鎮(zhèn)高山飾面用花崗巖開采以及深加工項(xiàng)目環(huán)評(píng)報(bào)告
- 血液科護(hù)士的惡性腫瘤護(hù)理
- 畜禽廢棄物資源化利用講稿課件
- 土地糾紛調(diào)解簡(jiǎn)單協(xié)議書
- 服裝倉(cāng)庫(kù)管理制度及流程
- 《餐飲渠道開發(fā)方案》課件
評(píng)論
0/150
提交評(píng)論