【java设计模式】【行为模式Behavioral Pattern】迭代器模式Iterator Pattern

 1 package com.tn.pattern;
 2
 3 public class Client {
 4     public static void main(String[] args) {
 5         Object[] objs={"飞","雪","连","天","射","白","鹿","笑","书","神"};
 6         Aggregate aggregate=new ConcreteAggregate(objs);
 7
 8         Iterator it=aggregate.iterator();
 9         it.first();
10         it.next();
11         System.out.println(it.isDone());
12         it.currentItem();
13
14         it.first();
15         System.out.println("----------------------------------------");
16         while(!it.isDone()){
17             it.currentItem();
18             it.next();
19         }
20     }
21 }
22
23 interface Iterator{
24     void first();
25     void next();
26     boolean isDone();
27     void currentItem();
28 }
29
30 interface Aggregate{
31     Iterator iterator();
32 }
33
34 class ConcreteAggregate implements Aggregate{
35     private Object[] datas=new Object[10];
36
37     public ConcreteAggregate(Object[] objs){
38         this.datas=objs;
39     }
40
41     public Iterator iterator(){
42         return new ConcreteIterator();
43     }
44
45     class ConcreteIterator implements Iterator{
46         private int index;
47         @Override
48         public void first() {
49             index=0;
50         }
51         @Override
52         public void next() {
53             index++;
54         }
55         @Override
56         public boolean isDone() {
57             return index>=datas.length;
58         }
59         @Override
60         public void currentItem() {
61             if(index<datas.length)
62                 System.out.println(datas[index]);
63         }
64     }
65 }
时间: 2024-10-07 00:11:08

【java设计模式】【行为模式Behavioral Pattern】迭代器模式Iterator Pattern的相关文章

Java设计模式(八)观察者模式 迭代器模式

(十五)观察者模式 观察者模式,定义对象间一对多关系,一个对象状态发生改变,所有依赖于它的对象都收到通知并且自动更新,观察者与被观察者分开.例如邮件订阅.RSS订阅,如果有更新就会邮件通知你. interface Observers{ public void update(); } class Observer1 implements Observers{ public void update(){ System.out.println("observer1 has received"

【java设计模式】(6)---迭代器模式(案例解析)

设计模式之迭代器模式 一.java迭代器介绍 1.迭代器接口 在jdk中,与迭代器相关的接口有两个:Iterator 与 Iterable. Iterator:迭代器,Iterator及其子类通常是迭代器本身的结构与方法:迭代器是一种模式,它可以使得对于序列类型的数据结构的遍历行为与被遍历的对象分离,即我们无需关心该序列的底层结构是什么样子的.只要拿到 这个对象,使用迭代器就可以遍历这个对象的内部. Iterable:可迭代的,那些想用到迭代器功能的其它类,如AbstractList HashM

设计模式之第6章-迭代器模式(Java实现)

设计模式之第6章-迭代器模式(Java实现) “我已经过时了,就不要讲了吧,现在java自带有迭代器,还有什么好讲的呢?”“虽然已经有了,但是具体细节呢?知道实现机理岂不美哉?”“好吧好吧.”(迭代器闷闷不乐的答应下来.作者吃着小笼包,咂咂嘴道:哼,想偷懒,窗户都没有~). 迭代器模式之自我介绍 正如你们所见,我目前已经没落了,基本上没人会单独写一个迭代器,除非是产品性质的研发,我的定义如下:Provide a way to access the elements of an aggregate

设计模式@第19章:迭代器模式

第19章:迭代器模式 一.看一个具体的需求 编写程序展示一个学校院系结构:需求是这样,要在一个页面中展示出学校的院系组成,一个学校有多个学院, 一个学院有多个系.如图: 传统的设计方案(类图) ? 学校 ? 学院 系 三.传统的方式的问题分析 将学院看做是学校的子类,系是学院的子类,这样实际上是站在组织大小来进行分层次的 实际上我们的要求是 :在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系, 因此这种方案,==不能很好实现的遍历的操作== 解决方案:=> 迭代器模式 四.

Java设计模式(一) 简单工厂模式不简单

原创文章,转载请务必将下面这段话置于文章开头处. 本文转发自Jason's Blog,原文链接 http://www.jasongj.com/design_pattern/simple_factory 简单工厂模式使用案例 有一种抽象产品--汽车(Car),同时有多种具体的子类产品,如BenzCar,BMWCar,LandRoverCar.类图如下 作为司机,如果要开其中一种车,比如BenzCar,最直接的做法是直接创建BenzCar的实例,并执行其drive方法,如下 package com.

Java设计模式(一)普通工场模式,抽象工场模式

设计模式 设计模式我觉得是前人总结的,为了解决一类问题而总结的代码设计经验.最初可能为了使用而使用,后面就会发现,很多没想到的问题因为使用了正确的设计模式已经为你考虑到了.<design patterns设计模式>这本书是程序员进阶必学. (一)工厂模式 工厂模式的意义在于定义一个用于创建对象的接口,并控制返回哪个类的实例.网上比较流行的一个普通工厂模式的例子. interface Sender{ public void send(); } class MainSender implement

Java设计模式(三)-装饰者模式

我们都知道,可以使用两种方式给一个类或者对象添加行为. 一是使用继承.继承是给一个类添加行为的比较有效的途径.通过使用继承,可以使得子类在拥有自身方法的同时,还可以拥有父类的方法.但是使用继承是静态的,在编译的时候就已经决定了子类的行为,我们不便于控制增加行为的方式和时机. 二是使用关联.组合即将一个对象嵌入到另一个对象中,由另一个对象来决定是否引用该对象来扩展自己的行为.这是一种动态的方式,我们可以在应用程序中动态的控制. 与继承相比,关联关系的优势就在于不会破坏类的封装性,且具有较好的松耦合

设计模式(十四)迭代器模式(Iterator)-行为型

大清晨,发一篇博文提提神吧. 迭代器模式(Iterator) 在软件开发过程中,经常需要将某一类的对象放在一个集合里,或者放在容器里,这个时候通常需要对集合或容器里的对象进行访问,很明显,对容器或集合里的对象访问必然涉及遍历,这就是迭代器模式. 迭代模式实现原理图 迭代器模式实现原理图 实现 迭代器角色负责定义访问和遍历元素的接口,它的示例代码如下: Iterator.java public interface Iterator { void Next(); void First(); void

Java设计模式(四) 装饰器模式 代理器模式

(七)装饰器模式 Decorator 装饰器模式是为了动态的给一个对象增加一些新功能.装饰对象与被装饰的对象需要实现同一个接口,装饰对象持有被装饰对象的实例. interface DecoratorSourceable{ public void method(); } //被装饰类 class DecoratorSource implements DecoratorSourceable{ public void method(){ System.out.println("Source"

java设计模式(二)单例模式 建造者模式

(三)单例模式 单例模式应该是最常见的设计模式,作用是保证在JVM中,该对象只有一个实例存在. 优点:1.减少某些创建比较频繁的或者比较大型的对象的系统开销. 2.省去了new操作符,降低系统内存使用频率,减轻GC压力. 3.保证核心代码的唯一性,比如交易引擎. 单例模式看似是最简单的设计模式. public class Singleton { //私有构造方法,防止实例化 private Singleton(){ } //创建类的实例的时候加载 private static Factory f