前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >让你一看就明白什么是聚合-java版本_源码下载

让你一看就明白什么是聚合-java版本_源码下载

作者头像
Hongten
发布2018-09-13 15:26:55
5930
发布2018-09-13 15:26:55
举报
文章被收录于专栏:HongtenHongten

项目结构:

运行效果:

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

代码部分:

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

/MovProxy/src/com/b510/movproxy/test/MovProxyTest.java

代码语言:javascript
复制
 1 /**
 2  * 
 3  */
 4 package com.b510.movproxy.test;
 5 
 6 import com.b510.movproxy.dao.Moveable;
 7 import com.b510.movproxy.dao.impl.Train;
 8 import com.b510.movproxy.proxy.TrainLogProxy;
 9 import com.b510.movproxy.proxy.TrainTimeProxy;
10 import com.b510.movproxy.proxy.TrainTranscationProxy;
11 
12 /**
13  * 测试类
14  * 
15  * @author hongten(hongtenzone@foxmail.com)
16  * @date 2013-2-24
17  */
18 public class MovProxyTest {
19     public static void main(String[] args) throws Exception {
20         // (0.火车 1.事物 2.时间 3.日志) 从内向外格式
21         Train train = new Train();
22         TrainTranscationProxy trainTranscationProxy = new TrainTranscationProxy(train);
23         TrainTimeProxy trainTimeProxy = new TrainTimeProxy(trainTranscationProxy);
24         TrainLogProxy trainLogProxy = new TrainLogProxy(trainTimeProxy);
25         Moveable moveable = trainLogProxy;
26         moveable.move();
27     }
28 
29 }

/MovProxy/src/com/b510/movproxy/dao/impl/Train.java

代码语言:javascript
复制
 1 /**
 2  * 
 3  */
 4 package com.b510.movproxy.dao.impl;
 5 
 6 import java.util.Random;
 7 
 8 import com.b510.movproxy.dao.Moveable;
 9 
10 /**
11  * 火车类
12  * @author hongten(hongtenzone@foxmail.com)
13  * @date 2013-2-24
14  */
15 public class Train implements Moveable{
16 
17     public void move() throws Exception{
18         System.out.println("the Train begin to move ......");
19         long timer = new Random().nextInt(15000);
20         try {
21             Thread.sleep(timer);
22         } catch (InterruptedException e) {
23             e.printStackTrace();
24         }
25         System.out.println("the Train end to move ......" + timer);
26     }
27  
28 }

/MovProxy/src/com/b510/movproxy/dao/Moveable.java

代码语言:javascript
复制
 1 /**
 2  * 
 3  */
 4 package com.b510.movproxy.dao;
 5 
 6 /**
 7  * @author hongten(hongtenzone@foxmail.com)
 8  * @date 2013-2-24
 9  */
10 public interface Moveable {
11 
12     public void move() throws Exception;
13 }

/MovProxy/src/com/b510/movproxy/proxy/TrainTranscationProxy.java

代码语言:javascript
复制
 1 /**
 2  * 
 3  */
 4 package com.b510.movproxy.proxy;
 5 
 6 import java.util.Random;
 7 
 8 import com.b510.movproxy.dao.Moveable;
 9 
10 /**
11  * 火车的事物代理
12  * @author hongten(hongtenzone@foxmail.com)
13  * @date 2013-2-24
14  */
15 public class TrainTranscationProxy implements Moveable{
16 
17     /**
18      * Moveable接口
19      */
20     private Moveable moveable;
21     
22     /**
23      * 在构造方法中传递Moveable
24      */
25     public TrainTranscationProxy(Moveable moveable){
26         this.moveable = moveable;
27     }
28 
29     public void move() throws Exception {
30         System.out.println("the transcation begin......");
31         long timer = new Random().nextInt(15000);
32         try {
33             moveable.move();
34             Thread.sleep(timer);
35         } catch (InterruptedException e) {
36             e.printStackTrace();
37         }
38         System.out.println("the transcation end ....." + timer);
39         
40     }
41     
42     
43 }

/MovProxy/src/com/b510/movproxy/proxy/TrainTimeProxy.java

代码语言:javascript
复制
 1 /**
 2  * 
 3  */
 4 package com.b510.movproxy.proxy;
 5 
 6 import com.b510.movproxy.dao.Moveable;
 7 
 8 /**
 9  * 火车的时间代理
10  * @author hongten(hongtenzone@foxmail.com)
11  * @date 2013-2-24
12  */
13 public class TrainTimeProxy implements Moveable{
14     /**
15      * Moveable接口
16      */
17     private Moveable moveable;
18     
19     /**
20      * 在构造方法中传递Moveable
21      */
22     public TrainTimeProxy(Moveable moveable){
23         this.moveable = moveable;
24     }
25 
26     public void move() throws Exception {
27         long start = System.currentTimeMillis();
28         System.out.println("the time of start .........");
29         moveable.move();
30         long end = System.currentTimeMillis();
31         System.out.println("the result time :" + (end - start));
32         
33     }
34     
35     
36 
37 }

/MovProxy/src/com/b510/movproxy/proxy/TrainLogProxy.java

代码语言:javascript
复制
 1 /**
 2  * 
 3  */
 4 package com.b510.movproxy.proxy;
 5 
 6 import com.b510.movproxy.dao.Moveable;
 7 
 8 /**
 9  * 火车的日志代理
10  * @author hongten(hongtenzone@foxmail.com)
11  * @date 2013-2-24
12  */
13 public class TrainLogProxy implements Moveable{
14 
15     /**
16      * Moveable接口
17      */
18     private Moveable moveable;
19     
20     /**
21      * 在构造方法中传递Moveable
22      */
23     public TrainLogProxy(Moveable moveable){
24         this.moveable = moveable;
25     }
26 
27     public void move() throws Exception {
28         System.out.println("start to log of the move() method!!!");
29         moveable.move();
30         System.out.println("stop to log of the move() method!!!");
31     }
32     
33     
34 }

源码下载http://files.cnblogs.com/hongten/MovProxy.zip

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-02-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档