让你一看就明白什么是代理模式--java版本_源码下载
项目结构:
运行效果:
======================================================
代码部分:
======================================================
/Proxy/src/com/b510/proxy/dao/GiveGift.java
1 /** 2 * 3 */ 4 package com.b510.proxy.dao; 5 6 /** 7 * 送礼物interface 8 * @author hongten(hongtenzone@foxmail.com) 9 * @date 2013-2-16 10 */ 11 public interface GiveGift { 12 /** 13 * 送洋娃娃 14 */ 15 public void giveDolls(); 16 /** 17 * 送鲜花 18 */ 19 public void giveFlowers(); 20 /** 21 * 送巧克力 22 */ 23 public void giveChocolate(); 24 }
/Proxy/src/com/b510/proxy/dao/impl/Pursuit.java
1 /** 2 * 3 */ 4 package com.b510.proxy.dao.impl; 5 6 import com.b510.proxy.dao.GiveGift; 7 import com.b510.proxy.bean.SchoolGirl; 8 9 /** 10 *追求者 11 * 12 * @author hongten(hongtenzone@foxmail.com) 13 * @date 2013-2-16 14 */ 15 public class Pursuit implements GiveGift { 16 17 /** 18 * 追求者要追求的对象女生 19 */ 20 private SchoolGirl schoolGirl; 21 22 public Pursuit(SchoolGirl schoolGirl) { 23 this.schoolGirl = schoolGirl; 24 } 25 26 @Override 27 public void giveChocolate() { 28 System.out.println(schoolGirl.getName() + " give you Chocolate!"); 29 } 30 31 @Override 32 public void giveDolls() { 33 System.out.println(schoolGirl.getName() + " give you Dolls!"); 34 } 35 36 @Override 37 public void giveFlowers() { 38 System.out.println(schoolGirl.getName() + " give you Flowers!"); 39 } 40 }
/Proxy/src/com/b510/proxy/dao/impl/Proxy.java
1 /** 2 * 3 */ 4 package com.b510.proxy.dao.impl; 5 6 import com.b510.proxy.bean.SchoolGirl; 7 import com.b510.proxy.dao.GiveGift; 8 9 /** 10 * 代理(代理就是真实对象的代表) 11 * @author hongten(hongtenzone@foxmail.com) 12 * @date 2013-2-16 13 */ 14 public class Proxy implements GiveGift{ 15 16 /** 17 * 追求者对象 18 */ 19 private Pursuit pursuit; 20 21 public Proxy(SchoolGirl schoolGirl){ 22 pursuit = new Pursuit(schoolGirl); 23 } 24 25 @Override 26 public void giveChocolate() { 27 pursuit.giveChocolate(); 28 } 29 30 @Override 31 public void giveDolls() { 32 pursuit.giveDolls(); 33 } 34 35 @Override 36 public void giveFlowers() { 37 pursuit.giveFlowers(); 38 } 39 40 }
/Proxy/src/com/b510/proxy/bean/SchoolGirl.java
1 /** 2 * 3 */ 4 package com.b510.proxy.bean; 5 6 /** 7 * 被追求的女生 8 * 9 * @author hongten(hongtenzone@foxmail.com) 10 * @date 2013-2-16 11 */ 12 public class SchoolGirl { 13 14 /** 15 * 名字 16 */ 17 private String name; 18 19 public String getName() { 20 return name; 21 } 22 23 public void setName(String name) { 24 this.name = name; 25 } 26 }
/Proxy/src/com/b510/proxy/test/ProxyTest.java
1 /** 2 * 3 */ 4 package com.b510.proxy.test; 5 6 import com.b510.proxy.bean.SchoolGirl; 7 import com.b510.proxy.dao.impl.Proxy; 8 9 10 /** 11 * 为别人做嫁衣 ---- 代理模式 <br> 12 * 一个追求者(Pursuit)喜欢一个名字叫娇娇的女生(SchoolGirl),但是自己又不主动去向人家女生表白<br> 13 * 这个追求者(Pursuit)就想出了一个办法,就是叫一个daili(Proxy)的人向人家女生送东西(give****()方法)<br> 14 * 15 * 出处:《大话设计模式》 程杰 著 16 * @author hongten(hongtenzone@foxmail.com) 17 * @date 2013-2-16 18 */ 19 public class ProxyTest { 20 21 public static void main(String[] args) { 22 //学校有一个名字叫"娇娇"的女生(SchoolGirl) 23 SchoolGirl schoolGirl = new SchoolGirl(); 24 schoolGirl.setName("娇娇"); 25 26 //一个叫(Proxy)daili的男生帮助另一个人追求者(Pursuit)追求这个名叫娇娇的女生 27 Proxy daili = new Proxy(schoolGirl); 28 daili.giveChocolate(); 29 daili.giveDolls(); 30 daili.giveFlowers(); 31 32 } 33 34 }
作者:Hongten
来源链接:https://www.cnblogs.com/hongten/archive/2013/02/16/hongten_proxy.html
版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。
2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。