【java设计模式】【行为模式Behavioral Pattern】迭代器模式Iterator Pattern
package com.tn.pattern; public class Client {
public static void main(String[] args) {
Object[] objs={"飞","雪","连","天","射","白","鹿","笑","书","神"};
Aggregate aggregate=new ConcreteAggregate(objs); Iterator it=aggregate.iterator();
it.first();
it.next();
System.out.println(it.isDone());
it.currentItem(); it.first();
System.out.println("----------------------------------------");
while(!it.isDone()){
it.currentItem();
it.next();
}
}
} interface Iterator{
void first();
void next();
boolean isDone();
void currentItem();
} interface Aggregate{
Iterator iterator();
} class ConcreteAggregate implements Aggregate{
private Object[] datas=new Object[10]; public ConcreteAggregate(Object[] objs){
this.datas=objs;
} public Iterator iterator(){
return new ConcreteIterator();
} class ConcreteIterator implements Iterator{
private int index;
@Override
public void first() {
index=0;
}
@Override
public void next() {
index++;
}
@Override
public boolean isDone() {
return index>=datas.length;
}
@Override
public void currentItem() {
if(index<datas.length)
System.out.println(datas[index]);
}
}
}
【java设计模式】【行为模式Behavioral Pattern】迭代器模式Iterator Pattern的更多相关文章
- 【java设计模式】(6)---迭代器模式(案例解析)
设计模式之迭代器模式 一.java迭代器介绍 1.迭代器接口 在jdk中,与迭代器相关的接口有两个:Iterator 与 Iterable. Iterator:迭代器,Iterator及其子类通常是迭 ...
- Java设计模式(八)观察者模式 迭代器模式
(十五)观察者模式 观察者模式,定义对象间一对多关系,一个对象状态发生改变,全部依赖于它的对象都收到通知而且自己主动更新,观察者与被观察者分开.比如邮件订阅.RSS订阅,假设有更新就会邮件通知你. i ...
- 【编程思想】【设计模式】【行为模式Behavioral】迭代器模式iterator
Python版 https://github.com/faif/python-patterns/blob/master/behavioral/iterator.py #!/usr/bin/env py ...
- 设计模式之第6章-迭代器模式(Java实现)
设计模式之第6章-迭代器模式(Java实现) “我已经过时了,就不要讲了吧,现在java自带有迭代器,还有什么好讲的呢?”“虽然已经有了,但是具体细节呢?知道实现机理岂不美哉?”“好吧好吧.”(迭代器 ...
- Java设计模式(三) 抽象工厂模式
原创文章,同步发自作者个人博客,转载请注明出处 http://www.jasongj.com/design_pattern/abstract_factory/ 抽象工厂模式解决的问题 上文<工厂 ...
- Java设计模式(十二) 策略模式
原创文章,同步发自作者个人博客,http://www.jasongj.com/design_pattern/strategy/ 策略模式介绍 策略模式定义 策略模式(Strategy Pattern) ...
- Java设计模式(二) 工厂方法模式
本文介绍了工厂方法模式的概念,优缺点,实现方式,UML类图,并介绍了工厂方法(未)遵循的OOP原则 原创文章.同步自作者个人博客 http://www.jasongj.com/design_patte ...
- Java设计模式(一) 简单工厂模式不简单
摘要:本文介绍了简单工厂模式的概念,优缺点,实现方式,以及结合Annotation和反射的改良方案(让简单工厂模式不简单).同时介绍了简单工厂模式(未)遵循的OOP原则.最后给出了简单工厂模式在JDB ...
- Java设计模式(十一) 享元模式
原创文章,同步发自作者个人博客 http://www.jasongj.com/design_pattern/flyweight/.转载请注明出处 享元模式介绍 享元模式适用场景 面向对象技术可以很好的 ...
- 《JAVA与模式》之迭代器模式
定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节. 类型:行为类模式 类图: public static void main(String[] args) { List< ...
随机推荐
- 【机器学习】人工神经网络ANN
神经网络是从生物领域自然的鬼斧神工中学习智慧的一种应用.人工神经网络(ANN)的发展经历的了几次高潮低谷,如今,随着数据爆发.硬件计算能力暴增.深度学习算法的优化,我们迎来了又一次的ANN雄起时代,以 ...
- MSSQL-并发控制-2-Isolation
如果转载,请注明博文来源: www.cnblogs.com/xinysu/ ,版权归 博客园 苏家小萝卜 所有.望各位支持! MySQL通过MVCC和锁来实现并发控制,在4 ...
- 关于Mybatis的一次pingQuery时间间隔的实践及思考
转眼间离这次问题的实践过程已经过去了一两个月了,现在想来自己的问题并不是不知道那么简单了,所以很有必要记录下来,算是一次警戒吧 废话不多说,直入主题. 我的直接上级准备将公司的后台管理系统由PHP转为 ...
- HTML5开发在2017年发展趋势如何?
随着移动互联网行业的飞速发展,人们借助于网络相互传达获取的信息越来越广泛,互联网前端开发中HTML5是最受关注的热点,HTML5让开发者和用户重新的对网页有了新的认识,从浏览器到APP都在受h5带来的 ...
- laravel5.3统计 withCount()方法的使用
在laravel5.3之后可以使用withCount()这个方法. 注意:一定要是5.3版本之后,5.2和5.1都会报方法未定义 举个栗子: App\Post::withCount('comments ...
- work 2013-07-19
今天,在现场进行了数据库的优化,将数据库的日志截断和压缩了 use 测试库backup log 测试库 with no_logdbcc shrinkfile (测试库_Data,1)dbcc shri ...
- Activity 的 4 种加载模式
Activity 的 4 种加载模式 配置 Activity 时可指定 android:launchMode 属性,该属性用于配置该 Activity 的加载模式.该属性支持如下 4 个属性值. * ...
- 【C#入门教案-02】用记事本编写第一个C#程序-Hello World
02-用记事本编写第一个C#程序-Hello World 广东职业技术学院 欧浩源 [1]进行.NET程序开发的最基本环境配备 .NET Framework + 代码编辑工具(记事本或Noetpad ...
- openstack pike 使用 linuxbridge + vxlan
#openstack pike 使用 linuxbridge + vxlan #openstack pike 集群高可用 安装部署 汇总 http://www.cnblogs.com/elvi/p/ ...
- Win10 之最新最简单有效安装配置adb
今天在新买的笔记本上安装配置adb,开始觉得挺简单的事,公司win7电脑上有现成的,但实际过程中--没想的那么简单了!好了,废话少说,直接正题. 研究了好一会下,总算搞定,总结如下: 1.下载Andr ...