1. 程式人生 > >java設計模式(行為型)之迭代器模式

java設計模式(行為型)之迭代器模式

package com.mcc.core.designPattern.behavior.iterator.doubleIterator;

/**
 * 迭代器實現
 *
 * @author <a href="mailto:[email protected]">menergy</a>
 *         DateTime: 14-3-16  下午12:28
 */
public class IteratorImpl implements Iterator {

    //內部索引
    private int index = -1;

    //持有被迭代的具體聚合物件
    private Aggregate aggregate;

    /**
     * 構造器,傳入具體聚合物件
     * @param aggregate
     */
    public IteratorImpl(Aggregate aggregate){
        this.aggregate = aggregate;
    }

    /**
     * 設定為第一位置
     */
    @Override
    public void first() {
        index = 0;
    }

    /**
     * 設定為下一個位置
     */
    @Override
    public void next() {
        if(index < this.aggregate.size() - 1){
            index = index + 1;
        }
    }

    /**
     * 是否有下一個位置
     * @return
     */
    @Override
    public boolean hasNext() {
        return index < this.aggregate.size() - 1;
    }

    /**
     * 獲取當前位置
     * @return
     */
    @Override
    public Object currentItem() {
        return this.aggregate.get(index);
    }

    /**
     * 移動到前一個位置
     */
    @Override
    public void previous() {
       if(index > 0){
            index = index - 1;
       }
    }

    /**
     * 是否有前一個位置
     * @return
     */
    @Override
    public boolean hasPrevious() {
        return index > 0;
    }
}

相關推薦

java設計模式行為模式

package com.mcc.core.designPattern.behavior.iterator.doubleIterator; /**  * 迭代器實現  *  * @author <a href="mailto:[email protected]">menergy</a

java設計模式——策略模式、模板方法模式、觀察者模式模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、直譯器模式行為【讀書筆記】

一、策略模式           定義:定義了演算法家族,分別封裝起來,讓他們之間可以互相替換,此模式讓演算法的變化,不會影響到演算法的客戶。           使用場景:策略模式是一種定義一系列演算法的方法,從概念上看,所有的這些演算法完成的都是相同的工作,只是實現不

行為設計模式模式二十一

 20世紀80年代,那時我家有一臺“古老的”電視機,牌子我忘了,只記得是臺黑白電視機,沒有遙控器,每次開關機或者換臺都需要通過電視機上面的那些按鈕來完成,我印象最深的是那個用來換臺的按鈕,需要親自用手去旋轉(還要使點勁才能擰動),每轉一下就“啪”的響一聲,如果沒有收到任何電視訊道就會出現一片讓人眼花的雪花點。

Java設計模式模式Iterator Pattern

介紹 迭代器模式是一種行為型設計模式,它是我們經常使用的一個設計模式,但是基本上不會單獨寫一個迭代器,大都使用的是 Java 語言內建的迭代器。可以說這是一個融入 Java 語言的設計模式,不止 Java ,其他很多語言都會內建這個模式。下面來看它的定義:

設計模式十九模式行為

一、簡介(Brief Introduction)        提供一種方法順序訪問一個聚合物件中各個元素,而又不需暴露該物件的內部表示 例子1:電視遙控器的頻道遍歷   二、模式分析(Analysi

spring 與設計模式建立Builder模式

一、前言 將一個複雜的物件構建與它的表示分離,使得同樣的構建過程可以建立不同的表示,實現構建物件的過程與部件解耦。生活中許多這樣的例子,例如大學4年的學習,每一年的學習成績會最終影響4後的績點。電腦汽

設計模式的藝術 行為模式模式

前言 現在的電視機都配置了一個遙控器,使用者可以通過遙控器去選擇上一個或者下一個臺,我們只需要知道如何使用這個遙控器,而無須關注電視是怎麼把電視訊道放入其中的,在軟體實際的開發中,也有這麼一種類,它儲存著多個成員物件,這些類通常稱為聚合類,對應的物件稱為聚合物件。為了方便操作這些聚合物件,同時可

設計模式模式Iterator

前言: 參考圖書:軟體設計模式與體系結構 參考部落格:https://www.cnblogs.com/wanson/articles/9277813.html   正題:         迭代器(iterator)有時又稱遊標

15、設計模式(行為)模式

作用 提供一種方法順序訪問一個聚合物件中各個元素, 而又無須暴露該物件的內部表示。 何時使用 遍歷一個聚合物件。 優點 它支援以不同的方式遍歷一個聚合物件。 迭代器簡化了聚合類。 在同一個聚合

JAVA設計模式15模式

迭代器模式是Java和.Net程式設計環境中非常常用的設計模式。此模式用於以順序方式訪問集合物件的元素,而不需要知道其底層表示。迭代器模式屬於行為模式類別。 實現例項 在這個例項中,將建立一個Iterator介面,它陳述了一個導航方法和一個Container介面,以及返回迭代器。 實現Con

設計模式模式Iterator Pattern

這篇部落格,我們要詳細講解的是迭代器模式(Iterator Pattern),將要講解的內容有:迭代器模式 的定義,作用,詳細設計分析等方面。 一、Pattern name 迭代器模式(Iterator Pattern) : 提供一種方法

研磨設計模式 模式Iterator1——跟著cc學設計系列

14.1  場景問題 14.1.1  工資表資料的整合        考慮這樣一個實際應用:整合工資表資料。        這個專案的背景是這樣的,專案的客戶方收購了一家小公司,這家小公司有自己的工資系統,現在需要整合到客戶方已有的工資系統上。        客戶方已有的工

研磨設計模式 模式Iterator2——跟著cc學設計系列

14.2  解決方案 14.2.1  迭代器模式來解決 用來解決上述問題的一個合理的解決方案就是迭代器模式。那麼什麼是迭代器模式呢? (1)迭代器模式定義   所謂聚合是:指一組物件的組合結構,比如:Java中的集合、陣列等。 (2)應用迭代器模式來解決的思路      

設計模式(行為)模式(Iterator Pattern)

PS一句:最終還是選擇CSDN來整理髮表這幾年的知識點,該文章平行遷移到CSDN。因為CSDN也支援MarkDown語法了,牛逼啊! 概述 在軟體構建過程中,集合物件內部結構常常變化各異。但對於這些集合物件,我們希望在不暴露其內部結構的同時,可以讓外

黑馬程式設計師——Java集合框架、Collection層次結構等

-----------android培訓、java培訓、java學習型技術部落格、期待與您交流!------------ 集合框架概述 一、什麼是集合框架   1.什麼是集合?   集合是指把具有相同性質的一類東西匯聚成一個整體,簡單說就是指儲存資料的一個容器。集

JAVA設計模式 模式【Iterator Pattern】

一、概述     提供一種方法來訪問聚合物件(容器container),而不用暴露這個物件的內部細節。屬於物件行為型模式。 二、適用場景     1>遍歷訪問聚合物件中的元素,而無須暴露它的內容表示,將聚合物件的訪問和內部資料的儲存分離。使得訪問聚合物件時無須瞭解

java設計模式模式

## 定義 ## 提供一種方法順序訪問一個聚合物件中的各個元素,而由不需要暴露該物件的內部細節。 ## 程式碼舉例 ## /** * @author bwx * @date 2017/11/29 * 迭代器介面 */ public

設計模式大總結模式

前言 說到迭代器,所有的Java開發者都不陌生,例如HashSet,當我們需要遍歷HashSet的時候,通過iterator不停的next就可以迴圈遍歷集合中的所有元素。但是這麼做到底有什麼好處呢? 1、使用者不需要關心HashSet內部的實現,不關心

Java設計模式模式(五)

迭代器模式:提供一種方法順序訪問一個集合物件中的各個元素,而又不需要暴漏物件的內部表示。 合理組織資料的結構以及相關操作時程式設計的一個重要方面,比如在程式設計中經常會使用諸如連結串列、散列表等資料結構。連結串列和散列表等資料結構都是可以存放若干個物件的集合,其區別時按

16.java設計模式模式

#### 基本需求: * 展示一個學校的結構,比如一個學校下面有多個學院,學院下面有多個系,對其節點主要是遍歷,與組合模式略有不同 #### 傳統方案: * 學校<-學院<-系 依次繼承 * 這種方式,在一個頁面中展示出學校的院系組成,一個學校有多個學院,一個學院有多個系,因此這種方案,不能