码迷,mamicode.com
首页 > 编程语言 > 详细

Java代理机制

时间:2018-05-22 20:48:44      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:cat   编译   sleep   override   实现类   大量   util   star   而且   

静态代理

静态代理是在编译时就将接口、实现类、代理类一股脑儿全部手动完成,但如果我们需要很多的代理,每一个都这么手动的去创建实属浪费时间,而且会有大量的重复代码 。

例如:

    //声明一个接口
    package com.ceshi.proxy;
    public interface Moveable {
        //提供一个move方法
    void move();    
}

package com.ceshi.proxy;
import java.util.Random;
//写一个实现类实现这个接口
public class Tank implements Moveable {
    @Override
    public void move() {
        System.out.println("Tank Moving...");
        try {
            Thread.sleep(new Random().nextInt(10000));
        } catch (InterruptedException e) {
            e.printStackTrace();
        }   
    }       
}


package com.ceshi.proxy;
//再写一个tank的时间代理类实现Moveable接口
public class TankTimeProxy implements Moveable {
    public TankTimeProxy(Moveable t) {
        super();
        this.t = t;
    }
    Moveable t;
    @Override
    public void move() {
        //在执行move方法前后加上有关时间的代码逻辑,以此来实现类似日志管理
        long start = System.currentTimeMillis();
        System.out.println("starttime:" + start);
        t.move();
        long end = System.currentTimeMillis();
        System.out.println("time:" + (end-start));
    }
}

Java代理机制

标签:cat   编译   sleep   override   实现类   大量   util   star   而且   

原文地址:https://www.cnblogs.com/nnxud/p/9073692.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!