代理模式:代理者和被代理者實現(xiàn)共同的行為,然后讓代理制調用被代理者完成這些行為。
白銀區(qū)網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、成都響應式網(wǎng)站建設等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站2013年至今到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)建站。
示例說明:代理者Proxy 代理MrLi 給MrssHong 送禮物。
類圖如下:
代碼實現(xiàn):
定義一個送禮物的接口:GiveGift
package com.zpj.designMode.proxy;//定義一個送禮物的接口public interface GiveGift { public void giveFlowers(); public void giveDolls(); public void giveChocolate(); }
實現(xiàn)MrLi:
package com.zpj.designMode.proxy;/** * MrLi會追女孩送禮物所以要實現(xiàn)接口GiveGift */public class MrLi implements GiveGift { private MrssHong hong;// 被追求著 public MrLi(MrssHong hong) { this.hong = hong; } @Override public void giveFlowers() { System.out.println("---------送花-------------" + hong.getName()); } @Override public void giveDolls() { System.out.println("---------送洋娃娃-------------" + hong.getName()); } @Override public void giveChocolate() { System.out.println("---------送巧克力-------------" + hong.getName()); } }
實現(xiàn)代理Proxy :
package com.zpj.designMode.proxy;public class Proxy implements GiveGift { private MrLi person;// 被代理人 public Proxy(MrssHong hong) { person = new MrLi(hong); } @Override public void giveFlowers() { person.giveFlowers(); } @Override public void giveDolls() { person.giveDolls(); } @Override public void giveChocolate() { person.giveChocolate(); } }
被送禮物者:MrssHong
package com.zpj.designMode.proxy;public class MrssHong { private String name; public MrssHong(String name) { super(); this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
測試類:
package com.zpj.designMode.proxy;import org.junit.Test;public class TestUnit { @Test public void test01() { MrssHong hong = new MrssHong("紅×××"); // 告訴代理者向誰送禮物,這個代理專屬于MrLi Proxy proxy = new Proxy(hong); // 代理者送禮物 proxy.giveFlowers(); proxy.giveChocolate(); proxy.giveDolls(); } }