设计模式--iterator模式简要探究
来源:互联网 发布:为什么淘宝网无法登录 编辑:程序博客网 时间:2024/06/05 18:44
对于iterator模式,可能很多同胞都有用过,也有大神做过讲解和深化,所以这次LZ就不哗众取宠,只说一些自己学习或者用到iterator时所产生的感想和总结,希望和大家交流一下。
LZ在示例中代码就不写全了,只表明这个模式原理即可,望见谅!
有两种方式定义iterator模式,大致相同:
第一种:通过构造函数进行传递,调用专有方法
第二种:通过定以内部类实现专有方法的调用
----------------------------------------------------------------------------------------------------
定义一个Iterable接口,用于实现类来进行迭代器的获取。
public interface Iterable {
Iterator iterator();
}
------------------------------------------------------------------------------------------------------
定义一个Iterator 接口,用于各种实现类来进行统一的方法(重点)
public interface Iterator {
boolean hashNext();
Object next();
int remove(int remove);
}
------------------------------------------------------------------------------------------------------
定义一个用于实现迭代器的类。
public class ListTest implements Iterable{
private Object object;
@Override
public Iterator iterator() {
//传递本类对象
return new ListIterator(this);
}
//这个方法也是一个核心--当调用迭代器时是ListTest的属性去直接调用,并且直接返回了一个iterator,所以当中的数值需要通过这个set方法进行传递,之后在遍历等操作中才可以用到
//当创建ListTest时并且赋值时,将数据存储,直接在此类中即可遍历
public void set(Object object){
this.object = object;
}
//ListTest自身的遍历方式
public Object get(){
//如果这是一个自定义的list的话,那么这里放的就是list的遍历方式
return object;
}
//删除
public int remove(){
return 0;
}
//ListTest的长度,用来判断是否还有下一个
public int size(){
return 0;
}
}
------------------------------------------------------------------------------------------------------
//第一种方法是在这个ListIterator 类中定义一个构造函数,用于将ListTest对象传递进来,然后调用其中的方法。
//第二种方法直接将ListIterator 类变为ListTest的内部类,直接使用外部类中的各种方法,需要注意的是这个内部类不能用static修饰(这样做的话就将内部类变为了静态类,无法使用外部类的方法)
class ListIterator implements Iterator{
private ListTest list;
public ListIterator(ListTest list){
this.list = list;
}
@Override
public boolean hashNext() {
//在这里进行判断
list.size();
return true;
}
@Override
public Object next() {
//通过这个方法可以实现不同的值获取方式,比如list set map等
return list.get();
}
@Override
public int remove(int remove) {
return list.remove();
}
}
对于iterator模式来说,可能真正自己定义这种模式的机会并不多,但是了解其中的原理和设计的思想对于我们却有着很大的帮助!
- 设计模式--iterator模式简要探究
- Iterator设计模式,探究STL中迭代器的实现原理
- 设计模式--Iterator模式
- 设计模式---Iterator模式
- 设计模式--Iterator 模式
- 【设计模式】Iterator模式
- 设计模式简要
- 设计模式简要
- 设计模式简要总结
- java设计模式简要
- 探究 Singleton 设计模式
- 探究观察者设计模式
- 探究Singleton设计模式
- 探究观察者设计模式
- 探究Singleton设计模式
- 探究 Singleton 设计模式
- 探究观察者设计模式
- 探究Singleton设计模式
- 装饰器详解(python)
- js顺序
- hdu2602 Bone Collector
- IO流将指定内容写入指定目录文件内
- ios 设置属性依赖
- 设计模式--iterator模式简要探究
- 数据结构实验之队列一:排队买饭
- jsp多选并且模糊查询下拉框
- 视觉设计是怎样影响用户体验的
- 响应式网页
- Storm-Kafka-Hbase 性能问题
- Android RecyclerView 实现position列表倒序排列(汇总)
- [数据库] Navicat for MySQL触发器更新和插入操作
- UVA