静态代理
来源:互联网 发布:手机淘宝内置安全密码 编辑:程序博客网 时间:2024/06/06 11:41
静态代理2种模式
1,通过继承来代理类:不够灵活,如果需要多个代理,就需要多层次的继承。
2,通过聚合来进行代理:相比继承代理提高了灵活性,多个代理时可以自由组合。
-------------------被代理的类----------------
package com.proxy.demo;
import java.util.Random;
public class Tank implements Moveable {
public void move() {
try {
Thread.sleep(new Random().nextInt(1000));
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("tank move");
}
}--------------------继承代理-------------------------
package com.proxy.demo;
/**
* 通过继承来实现了对Tank的代理 缺乏灵活性
* 如果要增加多层代理,就需要对该类再次进行继承
*/
public class ProxyTankByExtends extends Tank {
public void move() {
Long start = System.currentTimeMillis();
super.move();
Long end = System.currentTimeMillis();
System.out.println("run time : " + (end - start));
}
}
----------------使用聚合代理-------------------------
package com.proxy.demo;
/**
* 使用聚合进行类的代理
* 多个代理同时进行时可以自由组合
*/
public class TankLogProxy implements Moveable {
private Moveable m;
public TankLogProxy(Moveable m) {
super();
this.m = m;
}
public void move() {
System.out.println("start move");
m.move();
System.out.println("end move");
}
}
0 0
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- 静态代理
- oracle 改字段类型
- 忙碌的一天,从数学竞赛开始
- DM6437 精确测量运行时间
- chenglei1986/DatePicker源码解析(一)
- I/O----File类
- 静态代理
- Android之Android:layout_weight详解
- |ansible |chef |docker比较
- Spring AOP整理
- DFS搜索 --- HihoCoder 1168 Transport
- HTML5 3D立体图片相册
- 对webmagic总体构架的理解与代码分析——PageProcessor篇
- weboffice金格控件使用
- HDFS源码解析(1)---初识HDFS