设计模式之GOF23迭代器模式
迭代器模式Iterator
/**
* 自定义迭代器接口
* @author 小帆敲代码
*
*/
public interface MyIterator {
void first();//游标置于第一个
void last();//游标置于最后一个
boolean isfirst();
boolean isLast();
void next();//游标后移一个
boolean hasNext();//是否有下一个
Object getCurrentObj();//获得当前对象
}
* 具体聚合类
* @author 51104
*
*/
public class ConcreteAggregation {
private List<Object> list=new ArrayList<Object>();
return list;
}
this.list = list;
}
public void addObj(Object obj) {
list.add(obj);
}
public void removeObj(Object obj) {
list.remove(obj);
}
public MyIterator getMyIterator() {
return new ConcreteIterator();
}
//内部类可以使用外部属性
private class ConcreteIterator implements MyIterator{
private int cursor;
@Override
public void first() {
cursor=0;
}
public void last() {
cursor=list.size()-1;
}
public boolean isfirst() {
return cursor==0?true:false;
}
public boolean isLast() {
return cursor==(list.size()-1)?true:false;
}
public void next() {
if(cursor<list.size()) {
cursor+=1;
}
}
public boolean hasNext() {
if(cursor==list.size())
return false;
return true;
}
public Object getCurrentObj() {
return list.get(cursor);
}
}
}
public static void main(String[] args) {
ConcreteAggregation ca=new ConcreteAggregation();
ca.addObj("aa");
ca.addObj("bb");
ca.addObj("cc");
MyIterator mi=ca.getMyIterator();
while(mi.hasNext()) {
System.out.println(mi.getCurrentObj());
mi.next();
}
}
}
设计模式之GOF23迭代器模式相关推荐
- 设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型)
设计模式 ( 十四 ) 迭代器模式Iterator(对象行为型) 1.概述 类中的面向对象编程封装应用逻辑.类,就是实例化的对象,每个单独的对象都有一个特定的身份和状态.单独的对象是一种组织代码的有用 ...
- 设计模式笔记(18)---迭代器模式(行为型)
Gof定义 提供一种方法顺序访问一个聚合对象中的各个元素, 而又不暴露该对象的内部表示. 动机 在软件构建过程中,集合对象内部结构常常变化各异.但对于这些集合对象,我们希望在不暴露其内部结构的同时,可 ...
- 设计模式漫谈之迭代器模式
谈恋爱是两个人的事,结婚是两个家庭的事.最近事也挺多的.我也挺烦的,有时候,我也为自己的将来担忧,我自认为自己的技术过硬,但是千里马只有遇到伯乐才能发挥作用. 技术上让我高兴的事是,有个技术问题终于突 ...
- JS设计模式初识(四)-迭代器模式
定义 迭代器模式是指提供一种方法顺序访问一个聚合对象中的各个元素,而又不需要暴露该对象的内部表示.迭代器模式可以把迭代的过程从业务逻辑中分离出来,在使用迭代器模式之后,即迭代器模式使不关心对象的内部构 ...
- 《Android源码设计模式》之迭代器模式
迭代器模式介绍 迭代器模式(Iterator Pattern)又称为游标(Cursor) 模式,是行为型设计模式之一.我们对容器对象的访问必然会涉及遍历算法,如果我没将遍历方法封装到容器中,那么对于容 ...
- Java设计模式系列之——迭代器模式
本篇我们采取倒叙的手法来讲解迭代器模式,先看下面一段我们在平时工作中常见的代码: package com.mazhichu.designpatterns.iterator;import java.ut ...
- Java设计模式 (1) —— Iterator迭代器模式
拿到这个话题,首先搞清楚:什么是迭代器? 大家都学过 for-i 循环,for-i循环的本质就是 通过i++ 或者 i-- ,以实现 从数据的一端 一个一个地遍历数据元素,直到另一端的最后一个元素,将 ...
- 二、18【设计模式】之迭代器模式
今天的博客主题 设计模式 --> 设计模式之迭代器模式 命令模式 CP (Command Pattern) 定义 将一个请求封装成一个对象,使不同的请求把客户端参数化. 命令模式是对命令的 ...
- 设计模式:(迭代器模式)
1.定义 迭代器模式(Iterator Pattern)是 Java 和 .Net 编程环境中非常常用的设计模式.这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示. 迭代器模式属于行为 ...
- 设计模式学习总结-迭代器模式(Iterator Pattern)
问题: 在面向对象的软件设计中,经常会遇到一些聚集对象,按一定的顺序的遍历访问问题,这个遍历算法究竟应该由谁来实现呢,聚集对象本身?这样聚集对象承受了过多的功能,不仅要维护聚集对象内的元素,还要提供遍 ...
最新文章
- windows性能计数器搜集方法
- 鸿蒙os整体战略发布会,就在明天,华为将发布“鸿蒙OS”整体战略,能否用于手机?...
- 实例详细讲解ASP生成静态页面方法
- java游戏+弹幕_JAVA 弹幕小游戏 1.0版本
- 【使用指南】WijmoJS 前端开发工具包
- archbang linux安装教程,ArchLinux系统安装教程
- 安卓小程序 自定义下拉刷新_支付宝小程序设计设计指南
- 编程语言对比 运算符
- Python模块(进阶3)
- selenium IDE下载及使用
- 深圳数据分析认证(CPDA)含金量怎么样?
- VC14(VC2015)安装失败,0x80240017 - 未指定的错误,解决办法
- 高一计算机知识点第一章,第一章计算机基础知识知识点总结
- PS一键磨皮美白扩展插件Delicious Retouch 5.0 汉化集合版 Win/Mac
- Windows明文密码获取
- 企业网站建设流程步骤,教你快速建网站
- 自我决定理论:促进内在动机、社会发展和幸福感
- 真假内推?直拿offer?别被无良中介给骗了
- IOS 个人苹果开发者账号申请流程
- Mysql数据库知识点归纳汇总