java 迭代器模式实例详解迭代器模式实例详解
主要介绍了java 迭代器模式实例详解的相关资料,需要的朋友可以参考下
java 迭代器模式实例详解迭代器模式实例详解
今天来818设计模式中的迭代器模式,也是java中Stack,List,Set等接口以及数组这个数据结构都会使用的一种模式。
首先,为什么使用迭代器模式,目的就是通过一个通用的迭代方法,隐藏stack,list,set以及数组中不同的遍历细节。也就是
说,我不想让那些调用我的遍历容器的方法的人知道我到底是怎么一个一个的获取这些元素的(stack的pop,list的get,数组的
array[i]),我只想让他知道他能 通过一个迭代器Iterator或者通过一个for each语句就能拿到我容器里面所有的元素。这样就
能够最大化的隐藏实现细节,封装变化了。
先通过一个例子来一步步了解这其中的重要性吧。比方说,我要开发一个平台,这个平台会获取到京东的订单和淘宝的订单,
然后把订单中的所有购买条目全部打印出来。
既然要打印订单中的所有条目,那么就得先知道这些条目,也就是订单项有哪些属性。
package iterator;
/**
*
* @ClassName: Item
* @Description: 订单项
* @author minjun
*
*/
public class Item {
/**商品名称*/
private String name;
/**价格*/
private double price;
/**描述*/
private String desc;
/**数量*/
private int count;
public Item(String name, double price, String desc, int count) {
this.name = name;
this.price = price;
this.desc = desc;
this.count = count;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public int getCount() {
return count;
}
public void setCount(int count) {