![代理模式,適配器模式,遠(yuǎn)程方法調(diào)用案例實(shí)驗(yàn)報(bào)告_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/64091a0e-9cdb-4165-bfc1-936973041116/64091a0e-9cdb-4165-bfc1-9369730411161.gif)
![代理模式,適配器模式,遠(yuǎn)程方法調(diào)用案例實(shí)驗(yàn)報(bào)告_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/64091a0e-9cdb-4165-bfc1-936973041116/64091a0e-9cdb-4165-bfc1-9369730411162.gif)
![代理模式,適配器模式,遠(yuǎn)程方法調(diào)用案例實(shí)驗(yàn)報(bào)告_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/64091a0e-9cdb-4165-bfc1-936973041116/64091a0e-9cdb-4165-bfc1-9369730411163.gif)
![代理模式,適配器模式,遠(yuǎn)程方法調(diào)用案例實(shí)驗(yàn)報(bào)告_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/11/64091a0e-9cdb-4165-bfc1-936973041116/64091a0e-9cdb-4165-bfc1-9369730411164.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本文格式為word版,下載可任意編輯代理模式,適配器模式,遠(yuǎn)程方法調(diào)用案例實(shí)驗(yàn)報(bào)告 軟件設(shè)計(jì)與體系結(jié)構(gòu) 實(shí) 實(shí) 驗(yàn) 報(bào) 告 課程名稱 軟件設(shè)計(jì)與體系結(jié)構(gòu) 課程編號(hào) 0920216 試驗(yàn)項(xiàng)目名稱 代理模式,適配器模式,遠(yuǎn)程方法調(diào)用案例 學(xué)號(hào) 班級(jí) 姓名 專業(yè) 同學(xué)所在學(xué)院 指導(dǎo)老師 試驗(yàn)室名稱地點(diǎn) 試驗(yàn)時(shí)間 試驗(yàn)名稱: 代理模式,適配器模式,遠(yuǎn)程方法調(diào)用案例 試驗(yàn)?zāi)康模捍砟J剑m配器模式,遠(yuǎn)程方法調(diào)用案例(observer pattern)是設(shè)計(jì)模式中行為模式的一種,它解決了上述具有一對(duì)多依靠關(guān)系的對(duì)象的重用問題。此模式的參加者分為兩大類,一類是被觀看的目標(biāo),另一類是觀看該目標(biāo)的觀看者們。正由
2、于該模式是基于一對(duì)多的關(guān)系,所以該模式一般是應(yīng)用于由一個(gè)目標(biāo)對(duì)象和 n 個(gè)觀看者對(duì)象組成(當(dāng)然也可以擴(kuò)展為有多個(gè)目標(biāo)對(duì)象,但我們現(xiàn)在只爭(zhēng)論前者)的場(chǎng)合。當(dāng)目標(biāo)對(duì)象的狀態(tài)發(fā)生轉(zhuǎn)變或做出某種行為時(shí),正在觀看該目標(biāo)對(duì)象的觀看者們將自動(dòng)地、連鎖地作出相應(yīng)的響應(yīng)行為。 通過本次試驗(yàn)了解觀看者模式的原理。并能夠運(yùn)用觀看者模式來進(jìn)行編程。 試驗(yàn)內(nèi)容 1 uml類圖 代理模式-追女友實(shí)例: 適配器模式-清潔系統(tǒng): 遠(yuǎn)程方法調(diào)用: 2 程序的源代碼 代理模式-追女友實(shí)例: package gift; public interface givegift public void givedolls(); publi
3、c void giveflowers(); public void givechocolate(); package gift; public class proxy implements givegift pursuit gg; public proxy(pursuit g,schoolgirl mm) super(); g.setmm(mm); this.gg = g; override public void givedolls() / todo auto-generated method stub gg.givedolls(); override public void giveflo
4、wers() / todo auto-generated method stub gg.giveflowers(); override public void givechocolate() / todo auto-generated method stub gg.givechocolate(); package gift; public class pursuit implements givegift private schoolgirl mm; private string name; public pursuit(schoolgirl mm, string name) super();
5、 this.mm = mm; = name; public schoolgirl getmm() return mm; public void setmm(schoolgirl mm) this.mm = mm; override public void givedolls() / todo auto-generated method stub system.out.println(mm.getname() + + 這個(gè)洋娃娃是給你的,你友愛的 + + name); override public void giveflowers() / todo auto-generat
6、ed method stub system.out.println(mm.getname() + + 這束鮮花是給你的,你友愛的 + + name); override public void givechocolate() / todo auto-generated method stub system.out.println(mm.getname() + + 這塊巧克力是給你的,你友愛的 + + name); package gift; public class schoolgirl private string name; public schoolgirl(string name) s
7、uper(); = name; public string getname() return name; public void setname(string name) = name; package gift; public class test /* * param args */ public static void main(string args) / todo auto-generated method stub schoolgirl ss = new schoolgirl(小籠包); pursuit p = new pursuit(ss,
8、 過兒); proxy pxy = new proxy(p, ss); pxy.givechocolate(); pxy.givedolls(); pxy.giveflowers(); 適配器模式-清潔系統(tǒng): public interface clean public void makeclean(); public class office implements clean public void makeclean() system.out.println(清潔辦公室); public class workshop implements clean public void makeclea
9、n() system.out.println(清潔工作室); public interface extra extends clean public void takecare(); class facility implements extra public void takecare() system.out.println(養(yǎng)護(hù)照料); public void makeclean () system.out.println(清潔設(shè)備); public class client static void jobs(clean job) if(job instanceof clean) (cl
10、ean)job).makeclean(); if(job instanceof extra) (extra)job).takecare(); public static void main(string args) extra e = new facility(); jobs(e); clean c1 = new office(); clean c2 = new workshop(); jobs(c1); jobs(c2); 遠(yuǎn)程方法調(diào)用: package client; import java.rmi.*; import java.math.*; import compute.*; /* *
11、 client that asks the generic compute server to compute pi. the first * command-line argument is the server hostname. the second command-line * argument is the number of required digits after the decimal point for the * computation. */ public class computepi public static void main(string args) / in
12、stall a security manager! try /string name = / + args0 + /compute; string name = rmi:/localhost:3332/compute; / get a reference to the remote object from the registry. compute comp = (compute) naming.lookup(name); / create a task object. pi task = new pi(0); / ask the server to perform the computati
13、on. double pi = (double) (comp.executetask(task); system.out.println(pi); catch (exception e) system.err.println(computepi exception: + e.getmessage(); e.printstacktrace(); package client; import compute.*; import java.math.*; public class pi implements task private int digits; public pi(int digits)
14、 this.digits = digits; package compute; import java.rmi.*; /* * generic compute interface. */ public interface compute extends remote double executetask(task t) throws remoteexception; package compute; import java.io.serializable; /* * task interface. */ public interface task extends serializable pa
15、ckage engine; import java.math.bigdecimal; import java.rmi.*; import java.rmi.registry.locateregistry; import java.rmi.server.*; import compute.*; /* * server that executes a task specified in a task object. */ public class computeengine extends unicastremoteobject implements compute public computee
16、ngine() throws remoteexception super(); double pi; public double executetask(task t) pi=3.1415926; return pi; public static void main(string args) / install a security manager! / create the remote object. / register the remote object as compute. string name = rmi:/localhost:3332/compute; try compute
17、 engine = new computeengine(); locateregistry.createregistry(3332); naming.rebind(name, engine); system.out.println(computeengine bound); catch (exception e) system.err.println(computeengine exception: + e.getmessage(); e.printstacktrace(); 3試驗(yàn)截圖 代理模式-追女友實(shí)例: 適配器模式-清潔系統(tǒng): 遠(yuǎn)程方法調(diào)用: 對(duì)該模式的熟悉 經(jīng)過本次代理遠(yuǎn)程方法調(diào)用和適配器模式的試驗(yàn),通過自己動(dòng)手編代碼,是自己理解代理遠(yuǎn)程方法調(diào)用和適配器模式機(jī)制,并且知道代理遠(yuǎn)程方法調(diào)用和適配器模式有以下的優(yōu)點(diǎn):代理模式適用性:在需要更高級(jí)的對(duì)象引用而不是所能供應(yīng)的簡(jiǎn)潔的指
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年鋰電池用特種玻璃粉項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模范
- 2025年二手教練車銷售合同格式
- 2025年乳制品代理銷售合同
- 2025年阻沙固沙網(wǎng)項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告模板
- 2025年不動(dòng)產(chǎn)權(quán)購房合同范本
- 2025年家禽購銷合同協(xié)議
- 2025年陶瓷基體項(xiàng)目申請(qǐng)報(bào)告模范
- 2025年健身器材購置合同
- 2025年合伙型股權(quán)分配合同
- 2025年度制造業(yè)租賃協(xié)議樣式
- 2024年司法考試完整真題及答案
- 【化學(xué)】高中化學(xué)手寫筆記
- 2024年執(zhí)業(yè)藥師繼續(xù)教育專業(yè)答案
- 2024年安全員-C證考試題庫及答案(1000題)
- 膽管惡性腫瘤護(hù)理查房課件
- 企事業(yè)單位全面風(fēng)險(xiǎn)清單(含內(nèi)控風(fēng)險(xiǎn)-2023版-雷澤佳編制)
- 高標(biāo)準(zhǔn)農(nóng)田建設(shè)項(xiàng)目監(jiān)理日志
- [整理]10kv開關(guān)站標(biāo)準(zhǔn)設(shè)計(jì)說明(最終版)
- 分級(jí)診療制度管理辦法
- 公務(wù)員入職登記表
- 九年級(jí)新目標(biāo)英語單詞表默寫最新版
評(píng)論
0/150
提交評(píng)論