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
1700466985
private ArrayList<IProject>projectList=new ArrayList<IProject>();
1700466986
1700466987
//项目名称
1700466988
1700466989
private String name=””;
1700466990
1700466991
//项目成员数量
1700466992
[
上一页 ]
[ :1.700466943e+09 ]
[
下一页 ]