1700466935
1700466936
项目名称是:扭转时空项目 项目人数:100 项目费用:10000000
1700466937
1700466938
项目名称是:超人改造项 目项目人数:10000 项目费用:1000000000
1700466939
1700466940
项目名称是:第4个项目 项目人数:20 项目费用:4000000
1700466941
1700466942
项目名称是:第5个项目 项目人数:25 项目费用:5000000
1700466943
1700466944
.
1700466945
1700466946
.
1700466947
1700466948
.
1700466949
1700466950
老大一看,非常开心,这么快就出结果了,大大地把我夸奖了一番,然后就去埋头研究那堆枯燥的报表了。我回到座位上,又看了一遍程序(心里很乐,就又想看看自己的成果),想想(一日三省嘛),应该还有另外一种实现方式,因为是遍历嘛,让我想到的就是Java的迭代器接口java.util.iterator,它的作用就是遍历Collection集合下的元素,那我们的程序还可以有另外一种实现,通过实现iterator接口来实现遍历,先修正一下类图,如图20-2所示。
1700466951
1700466952
1700466953
1700466954
1700466955
图20-2 增加迭代接口的类图
1700466956
1700466957
看着是不是复杂了很多?是的,是有点复杂了,是不是我们把简单的事情复杂化了?请读者继续阅读下去,我等会说明原因。我们先分析一下我们的类图java.util.Iterator接口中声明了三个方法,这是JDK定义的,ProjectIterator实现该接口,并且聚合了Project对象,也就是把Project对象作为本对象的成员变量使用。看类图还不是很清晰,我们一起看一下代码,先看IProject接口的改变,如代码清单20-4所示。
1700466958
1700466959
代码清单20-4 项目信息接口
1700466960
1700466961
public interface IProject{
1700466962
1700466963
//增加项目
1700466964
1700466965
public void add(String name,int num,int cost);
1700466966
1700466967
//从老板这里看到的就是项目信息
1700466968
1700466969
public String getProjectInfo();
1700466970
1700466971
//获得一个可以被遍历的对象
1700466972
1700466973
public IProjectIterator iterator();
1700466974
1700466975
}
1700466976
1700466977
这里多了两个方法,一个是add方法,这个方法是增加项目,也就是说产生了一个对象后,直接使用add方法增加项目信息。我们再来看其实现类,如代码清单20-5所示。
1700466978
1700466979
代码清单20-5 项目信息
1700466980
1700466981
public class Project implements IProject{
1700466982
1700466983
//定义一个项目列表,说有的项目都放在这里
1700466984
[
上一页 ]
[ :1.700466935e+09 ]
[
下一页 ]