設計模式 Iterator模式

2021-07-13 07:48:55 字數 1333 閱讀 2124

迭代器模式,主要用於容器裡面元素的遍歷,其他地方用到的不多,這裡舉個例項,模仿jdk裡面迭代器的實現,當然我這裡並沒有把iterator方法抽象到iterable這個介面中,依據介面的設計原則,不要做乙個面面俱到的介面,而應該讓特定的介面完成特定的功能

以下是**示例,使用了之後,我們在測試**中,僅僅只需要改動乙個位置就可以實現不同list的切換

package com.zcj.designpattern;

import com.zcj.designpattern.*;

public class iteratortest

}}

接下來是我定義的list介面:

package com.zcj.designpattern;

//定義list的介面,採用泛型

public inte***ce list

接著是iterator介面的定義:

package com.zcj.designpattern;

public inte***ce iterator

下面是二個list的實現:因為用到了鍊錶,所以定義了乙個node類

package com.zcj.designpattern;

public class arraylistimplements list

private class arraylistitrator implements iterator

public t getval()

public void setval(t val)

public node getnext()

public void setnext(node next)

}

package com.zcj.designpattern;

public class linkedlistimplements list

else

size++;

} @override

public iteratoriterator()

@override

public int size()

private class linkedlistiterator implements iterator

@override

public t next()

@override

public void remove()

}}

以上所有**模擬了乙個簡單的迭代器模式的功能

設計模式 迭代模式Iterator

提供乙個方法按順序遍歷乙個集合內的元素,而又不需要暴露該物件的內部表示。1 訪問乙個聚合的物件,而不需要暴露物件的內部表示 2 支援對聚合物件的多種遍歷 3 對遍歷不同的物件,提供統一的介面。iterator 定義訪問的介面 抽象的迭代,有判斷結束和下乙個,獲取當前元素等函式 author xing...

設計模式 Iterator理解

為了更好的理解iterator,也就是迭代器,借用arraylist和linkedlist,來更好解釋了iterator的作用 package designmode.iterator description 定義集合方法介面 author ccq date 2017年6月20日 下午9 52 30 ...

設計模式之迭代模式(Iterator)

意圖 提供一種順序訪問乙個聚合物件中各個元素,而不需要暴露聚合物件內部行為。即將列表的訪問和遍歷從列表物件中分離出來,放入迭代器物件中。使遍歷和列表物件介面。可產生乙個列表物件可以復用多個迭代器 多種遍歷方式 乙個迭代器支援多個列表物件 多個列表物件由相同遍歷演算法,或者列表物件本身提供演算法差異部...