易截截图软件、单文件、免安装、纯绿色、仅160KB

java简单静态代理(聚合)

定义一个接口
package com.beckham;
/*
* 定义一个接口
*/
public interface Move {
public void move() ;
}
 
核心的实现类
package com.beckham;
/*
* 最初的接口实现
*/
public class Tank implements Move {
public void move() {
System.out.println("坦克开动.......");
}
}
 
实现方法时记录时间
package com.beckham;
public class TankTime implements Move {
// 实现最原始的接口
private Move move;
public TankTime(Move move) {
this.move = move;
}
public void move() {
System.out.println(System.currentTimeMillis());
move.move();
}
}
 
实现方法前后加入日志
package com.beckham;
public class TankLog implements Move {
// 实现最原始的接口
private Move move;
public TankLog(Move move) {
this.move = move;
}
public void move() {
System.out.println("坦克开始日志......");
move.move();
System.out.println("坦克结束日志......");
}
}
 
聚合实现
package com.beckham;
public class Test {
public static void main(String[] args) {
// 最初的实现类
Move m = new Tank();
// 最里面的代理
TankLog tl = new TankLog(m);
// 外面的代理
TankTime tt = new TankTime(tl);

//接口的聚合
tt.move();
}
}
 
测试结果
1262316711937
坦克开始日志......
坦克开动.......
坦克结束日志......
到此为止,一个简单的静态代理就完成了,其实完成的功能就是要在已经实现的接口的方法前后加一些与核心无关的功能,采用接口的聚合实现比较灵活。


相关文档:

sql 2005 存储过程分页 java 代码

 create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',         
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列 ......

[转载] java完美经典读书笔记

                                                   ......

java中怎么加入声音

java中怎么加入声音 先说一下在 applet 中播放声音文件的一般步骤:
 
创建一个 AudioClip 对象
装入 .au 或者wav的声音文件(或者后面所说的支持的类型)到 AudioClip 对象
 
 
下面是相应的代码:
 import java.applet.*;
 
AudioClip ac = getAudioClip(getCodeBase(), soundFile);
ac. ......

Java实践课程实验(2009岁末整理)

面向对象原理与Java
实践课程实验代码及报告
 
实验
1
:对象和类
实验内容:
  
1
、尝试两人合作编写程序,加深对方法的接口与实现的理解。其中一人负责编写方法
isPrime()
,用于判断一个给定的正整数是否素数,另一个人负责编写主方法
main()
,利用
isPrime()
验证著名的哥德巴赫猜想:任何比
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号