静态代理

原创 2013年12月04日 09:50:50

定义一个接口:

 

public class Tank implements Moveable {
	@Override
	public void move() {
		try {
			Thread.sleep(new Random().nextInt(10000));
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}
}

 被代理的接口一:

 

 

public interface Moveable {
	public void move();
}

 被代理接口二:

 

public interface TankLogger {
	public void startLogger();
	public void endLogger();
}	

代理一:

 

public class TankLoggerProxy implements Moveable{
	Moveable tank;
	public TankLoggerProxy(Moveable moveable) {
		super();
		this.tank = moveable;              
	}
	public void endLogger(){
	}
	@Override
	public void move() {
		System.out.println("logger tank start move");
		this.tank.move();
		System.out.println("logger tank end move");
	}
}

 代理二:

public class TankTimeProxy implements Moveable{
	Moveable tank;
	public TankTimeProxy(Moveable tank) {
		super();
		this.tank = tank;
	}
	public void move()
	{
		long start = System.currentTimeMillis();
		System.out.println("starttime:"+start);
		this.tank.move();
		long end = System.currentTimeMillis();
		System.out.println("endtime:"+end);
	}
}

  主函数:

 

public class TestMain {
	public static void main(String[] args) {
		Tank tank =  new Tank();
		Moveable tankTimeProxy = new TankTimeProxy(tank);
		Moveable tankLoggerProxy = new TankLoggerProxy(tankTimeProxy);
		Moveable m = tankLoggerProxy;
		tankLoggerProxy.move();
	}
}

 

代理模式之静态代理

代理模式 为其他对象提供代理以控制对这个对象的访问 (例如火车票代售处代理火车站售票,提供电话预约订票等渠道,但是退票只能在火车站退) "去掉功能服务,增加额外服务" 各类代理: 1...
  • zhuyu714997369
  • zhuyu714997369
  • 2016年07月21日 17:21
  • 829

java静态代理与动态代理的区别

java静态代理和动态代理 本文动态代理部分内容大量引自:http://www.ibm.com/developerworks/cn/java/j-lo-proxy1/  一、代理概念 ...
  • u014381710
  • u014381710
  • 2015年10月25日 22:15
  • 2100

设计模式之代理模式(静态代理)

概要设计模式是一门艺术,如果真正了解这门艺术,你会发现,世界都将变得更加优美。定义为其它的对象提供一种代理,以控制这个对象的访问使用场景当不想直接访问某个对象的时候,就可以通过代理1.不想买午餐,同事...
  • u011546655
  • u011546655
  • 2016年08月30日 15:01
  • 1324

java静态代理和动态代理

一、代理概念 为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委托类...
  • u011776918
  • u011776918
  • 2013年12月08日 12:41
  • 8620

java代理(静态代理和jdk动态代理以及cglib代理)

说到代理,脑袋中浮现一大堆代理相关的名词,代理模式,静态代理,jdk代理,cglib代理等等。 记忆特别深刻的是,一次面试中,一位面试官问我,spring的AOP核心采用的设计模式是什么什么模式,阅读...
  • fighterandknight
  • fighterandknight
  • 2016年04月20日 17:34
  • 3996

Java代理模式详解及案例分析:静态代理/动态代理

标题:Java代理模式详解及案例分析:静态代理/动态代理 我们以几个问题,来开始我们今天的学习,如果下面几个问题,你都能说出个一二,那么恭喜你,你已经掌握了这方面的知识。 1,什么是代理模式? 2,...
  • reggergdsg
  • reggergdsg
  • 2016年11月03日 19:56
  • 1391

nginx静态代理

说说为什么现在需要做一个单独的图片服务器或者叫文件服务器,因为有很多项目都需要使用公用图片,单独配置在一个项目的虚拟路径不怎么好,所以专门提出来,刚好我也会nginx,现在说说配置,当然有更好的方案,...
  • u014148255
  • u014148255
  • 2016年08月11日 14:06
  • 845

JAVA学习篇--静态代理VS动态代理

本篇博客的由来,之前我们学习大话设计,就了解了代理模式,但为什么还要说呢?原因:1,通过DRP这个项目,了解到了动态代理,认识到我们之前一直使用的都是静态代理,那么动态代理又有什么好处呢?它们二者的区...
  • hejingyuan6
  • hejingyuan6
  • 2014年07月01日 20:36
  • 37935

AOP之静态代理VS动态代理

一、代理概念         为某个对象提供一个代理,以控制对这个对象的访问。代理类和委托类有共同的父类或父接口,代理类负责请求的预处理,过滤,将请求分配给委托类处理。 二、静态代理:        ...
  • u010097777
  • u010097777
  • 2016年06月06日 21:37
  • 1907

动态代理与静态代理区别

一、代理概念  为某个对象提供一个代理,以控制对这个对象的访问。 代理类和委托类有共同的父类或父接口,这样在任何使用委托类对象的地方都可以用代理对象替代。代理类负责请求的预处理、过滤、将请求分派给委...
  • ikownyou
  • ikownyou
  • 2016年11月08日 13:47
  • 4170
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:静态代理
举报原因:
原因补充:

(最多只允许输入30个字)