首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 設計模式:迭代器模式完整測試與步長驗證 (4/4)

     編輯:關於C語言

客戶端測試程式碼

展示迭代器遍歷集合,支援自訂步長:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

using I = Pattern.Iterator;

public partial class Iterator : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        I.Collection collection = new I.Collection();

        collection[0] = new I.MessageModel("第1條信息", DateTime.Now);
        collection[1] = new I.MessageModel("第2條信息", DateTime.Now);
        collection[2] = new I.MessageModel("第3條信息", DateTime.Now);
        collection[3] = new I.MessageModel("第4條信息", DateTime.Now);
        collection[4] = new I.MessageModel("第5條信息", DateTime.Now);
        collection[5] = new I.MessageModel("第6條信息", DateTime.Now);
        collection[6] = new I.MessageModel("第7條信息", DateTime.Now);
        collection[7] = new I.MessageModel("第8條信息", DateTime.Now);
        collection[8] = new I.MessageModel("第9條信息", DateTime.Now);

        I.Iterator iterator = new I.Iterator(collection);

        iterator.Step = 2;

        for (I.MessageModel mm = iterator.First(); !iterator.IsDone; mm = iterator.Next())
        {
            Response.Write(mm.Message);
            Response.Write("<br />");
        }
    }
}

執行結果

第1條信息
第3條信息
第5條信息
第7條信息
第9條信息

結果分析

  • 步長設置:iterator.Step = 2 使遍歷間隔 2 個元素。
  • 遍歷流程:First() 重置游標 → 條件 !IsDone → Next() 移動游標 → 取得元素。
  • 索引存取:迭代器透過集合索引器 collection[_current] 存取元素。

迭代器模式核心價值

優勢說明
封裝遍歷邏輯客戶端無需知曉集合內部結構(陣列/鏈表/樹)。
多種遍歷方式可建立不同迭代器(正向/反向/步長/過濾)。
統一介面所有集合透過 IIterator 介面遍歷,支援多態。
同時遍歷:多個迭代器可同時遍歷同一集合,互不干擾。

參考資源

DoFactory 迭代器模式

迭代器模式類別圖
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved