迭代器模式---学习笔记
来源:互联网 发布:蒙自电视台网络直播 编辑:程序博客网 时间:2024/05/17 01:53
单一职责:对象应该只负责一项任务。
所以,我们在开发自己的集合或者容器的时候,应该让容器只负责保存对象,而遍历出所有的对象,这个任务应该单独出来,让别的类的实现。很幸运,Java的容器或者集合,已经帮我们实现了这些东西。下面我们就来看看迭代器模式是怎么一个实现方式。
1:定义一个产品类(一看就懂)
public class Project {private String project_Name;private int staff_Num;private int cost;public Project(String project_Name, int staff_Num, int cost) {super();this.project_Name = project_Name;this.staff_Num = staff_Num;this.cost = cost;} public String get_Info(){ String info=""; info+="项目名称:"+this.project_Name; info+="\t项目人数:"+this.staff_Num; info+="\t 项目费用:"+this.cost; return info; } }2:定义一个装产品容器的接口
public interface I_ProjectList { //添加项目public void add(String project_Name,int staff_Num,int cost);//获得一个可以遍历的对象public I_ProjectIterator iterator();}
3:定义一个装产品容器的实现
public class ProjectList implements I_ProjectList{//定义一个项目列表,说有的项目都放在这里private List<Project> list=new ArrayList<Project>();@Override//添加项目public void add(String project_Name, int staff_Num, int cost) {this.list.add(new Project(project_Name, staff_Num, cost));}@Override//得到便遍历器public I_ProjectIterator iterator() {return new ProjectIterator(this.list);}}4:定义一个迭代器的接口
public interface I_ProjectIterator { public boolean hasNext(); public Object next();}
5:定一个迭代器的实现
public class ProjectIterator implements I_ProjectIterator {private List<Project> list;private int currentItem=0;public ProjectIterator(List<Project> list) { this.list=list;}@Overridepublic boolean hasNext() {boolean flag=true;if(this.currentItem>=this.list.size()||this.list.get(currentItem)==null){flag=false;}return flag;}@Override//取得下一个的值public Project next() {return (Project)this.list.get(this.currentItem++);}}
6:现在老板要查看所有的项目信息,我们将这些信息反馈个他
public class Boss {public static void main(String[] args) { ProjectList projectList=new ProjectList(); projectList.add("宇宙开发项目", 10, 10000); projectList.add("移动游戏项目", 100, 10000); projectList.add("房地产开发项目", 200, 2000000); I_ProjectIterator it= projectList.iterator(); while(it.hasNext()){ Project project=(Project) it.next(); System.out.println(project.get_Info()); } }}
项目名称:宇宙开发项目 项目人数:10项目费用:10000
项目名称:移动游戏项目 项目人数:100项目费用:10000
项目名称:房地产开发项目 项目人数:200项目费用:2000000
0 0
- 迭代器模式---学习笔记
- 迭代器模式---学习笔记
- 设计模式学习笔记之迭代器模式
- 设计模式学习笔记-迭代器模式 一般
- 设计模式学习笔记之迭代器模式
- 设计模式学习笔记--迭代器模式
- 设计模式学习笔记--迭代器模式
- 设计模式学习笔记之迭代器模式
- [学习笔记]设计模式[8]-{迭代器模式}
- 设计模式学习笔记--迭代器模式
- 【学习笔记】设计模式-迭代器模式
- 【设计模式学习笔记十七】【行为模式】【迭代器模式(Interpreter)】
- 设计模式学习笔记
- 模式学习笔记
- 设计模式学习笔记
- Strategy模式学习笔记
- 设计模式学习笔记
- Prototype模式学习笔记
- iOS -- OpenSSL进行RSA加密解密概念
- BMP图像的格式
- 反转字符
- 关于对话列表的listview的优化
- 题目5 Binary String Matching
- 迭代器模式---学习笔记
- 将Java中的数组转换成JS中的数组
- mybatis热部署加载*Mapper.xml文件
- photoshop
- Java Date 和 Calendar
- uva 10061(数学)
- LCD液晶屏工作原理
- ListView显示数据,给关键词添加红色高亮显示。
- Android运行main方法后java虚拟机停止运行