代理的代码示范
import java.util.*;
//定义ArrayList的一个接口
interface ArrayListDemo {
//迭代元素方法
public abstract void Itera(ArrayList list);
//添加元素
public abstract ArrayList Add();
}
// 接口的实现类
class ArrayListDemoImpt implements ArrayListDemo {
//实现接口的迭代功能
public void Itera(ArrayList list) {
Iterator it = list.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
}
//实现接口的添加元素功能
public ArrayList Add() {
ArrayList list = new ArrayList();
for (int x = 1; x < 10000; x++) {
list.add(x);
}
return list;
}
}
// 定义一个代理类
class ArrayListProxy implements ArrayListDemo {
ArrayListDemoImpt aldi = new ArrayListDemoImpt();
//代理调用实现类的迭代元素功能,实现迭代
public void Itera(ArrayList list) {
long start_time = System.currentTimeMillis();
aldi.Itera(list);
long end_time = System.currentTimeMillis();
System.out.println("程序迭代元素运行时间是:"+(end_time - start_time)+"毫秒");
}
//代理调用实现类方法,实现添加元素
public ArrayList Add() {
return aldi.Add();
}
}
public class Test4 {
public static void main(String[] args) {
//建立代理来的对象
ArrayListProxy list2 = new ArrayListProxy();
//调用代理添加功能
ArrayList list = list2.Add();
//调用代理的迭代功能
list2.Itera(list);