当前位置:首页 > Java技术 > 让你一看就明白什么是代理模式--java版本_源码下载

让你一看就明白什么是代理模式--java版本_源码下载

项目结构:

让你一看就明白什么是代理模式--java版本_源码下载 _ JavaClub全栈架构师技术笔记

运行效果:

让你一看就明白什么是代理模式--java版本_源码下载 _ JavaClub全栈架构师技术笔记

======================================================

代码部分:

======================================================

/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 }

 源码下载https://files.cnblogs.com/hongten/Proxy.zip

作者: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),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/68330.html

标签: Java版本
分享给朋友: