java設計模式(行為型)之迭代器模式
/**
* 迭代器實現
*
* @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) : 提供一種方法
研磨設計模式 之 迭代器模式(Iterator)1——跟著cc學設計系列
14.1 場景問題 14.1.1 工資表資料的整合 考慮這樣一個實際應用:整合工資表資料。 這個專案的背景是這樣的,專案的客戶方收購了一家小公司,這家小公司有自己的工資系統,現在需要整合到客戶方已有的工資系統上。 客戶方已有的工
研磨設計模式 之 迭代器模式(Iterator)2——跟著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設計模式之迭代器模式
#### 基本需求: * 展示一個學校的結構,比如一個學校下面有多個學院,學院下面有多個系,對其節點主要是遍歷,與組合模式略有不同 #### 傳統方案: * 學校<-學院<-系 依次繼承 * 這種方式,在一個頁面中展示出學校的院系組成,一個學校有多個學院,一個學院有多個系,因此這種方案,不能