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


    项目结构:

    运行效果:

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

    代码部分:

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

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

     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

     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

     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

     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

     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

     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 }

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

  • 相关阅读:
    Pycharm中的加载多个项目
    Python中的条件选择和循环语句
    Python中的模块
    python在不同层级目录import模块的方法
    数据结构与算法分析:C语言描述(原书第2版 简体中文版!!!) PDF+源代码+习题答案
    数据结构和算法关系
    二叉树及二叉树的遍历
    栈及其应用
    基础知识- 算法复杂度
    Java 特定规则排序-LeetCode 179 Largest Number
  • 原文地址:https://www.cnblogs.com/hongten/p/hongten_juhe.html
Copyright © 2020-2023  润新知