package com.jet.impl;
import com.jet.com.jet.vo.DepartmentVo;
import com.jet.someinterface.College;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
* Created by Administrator on 2016/11/14.
* description:信息工程学院
*/
public class InfoEngineeringCollege implements College{
List<DepartmentVo> departmentVoList;//注意这里我们使用了集合来放置专业对象了
public String getName() {
return "信息工程学院";
}
public InfoEngineeringCollege() {
this.departmentVoList = new ArrayList<DepartmentVo>();
addDepartment("电子信息工程","电子信息工程");
addDepartment("信息工程","信息工程");
addDepartment("通信工程","通信工程");
}
public void addDepartment(String name, String description) {
DepartmentVo departmentVo = new DepartmentVo(name,description);
departmentVoList.add(departmentVo);
}
public Iterator createIterator() {
return new InfoEngineeringCollengIterator(departmentVoList);
}
}
package com.jet.impl;
import com.jet.com.jet.vo.DepartmentVo;
import java.util.Iterator;
import java.util.List;
/**
* Created by Administrator on 2016/11/14.
* description:信息工程学院迭代器
*/
public class InfoEngineeringCollengIterator implements Iterator{
int index = 0;
List<DepartmentVo> departmentVoList;
public InfoEngineeringCollengIterator(List<DepartmentVo> departmentVoList) {
this.departmentVoList = departmentVoList;
}
public boolean hasNext() {
if(index >= departmentVoList.size() ){
return false;
}else {
index = index + 1;
return true;
}
}
public Object next() {
return departmentVoList.get(index);
}
public void remove() {
}
}
package com.jet.impl;
import com.jet.com.jet.vo.DepartmentVo;
import com.jet.someinterface.College;
import java.util.Iterator;
import java.util.List;
/**
* Created by Administrator on 2016/11/15.
* description:模拟向页面输出院系信息的类,该类负责遍历每个专业并打印其信息
*/
public class OutputInfoImpl {
//学院集合
List<College> collegeList;
public OutputInfoImpl(List<College> collegeList) {
this.collegeList = collegeList;
}
public void printDepartement(){
//java的集合实现了迭代器,可以直接调用方法取到
Iterator departmentIterator = collegeList.iterator();
while (departmentIterator.hasNext()){
College college = (College) departmentIterator.next();
System.out.println("--------" + college.getName() + "有以下专业-----------");
printDepartment(college.createIterator());
}
}
public void printDepartment(Iterator iterator){
while (iterator.hasNext()){
DepartmentVo departmentVo = (DepartmentVo) iterator.next();
System.out.println(departmentVo.getName());
}
}
}
package com.jet.test;
import com.jet.impl.ComputerCollege;
import com.jet.impl.InfoEngineeringCollege;
import com.jet.impl.OutputInfoImpl;
import com.jet.someinterface.College;
import java.util.ArrayList;
import java.