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

C# 設計模式:迭代器模式集合介面與實作 (2/4)

     編輯:關於C語言

集合介面:ICollection

定義建立迭代器的標準介面:

using System;
using System.Collections.Generic;
using System.Text;

namespace Pattern.Iterator
{
    /// 
    /// 集合介面(Aggregate)
    /// 
    public interface ICollection
    {
        /// 
        /// 建立迭代器物件
        /// 
        /// IIterator
        IIterator CreateIterator();
    }
}

具體集合:Collection

實作集合介面,內部使用 List 管理元素:

using System;
using System.Collections.Generic;
using System.Text;

namespace Pattern.Iterator
{
    /// 
    /// 集合(ConcreteAggregate)
    /// 
    public class Collection : ICollection
    {
        private List<MessageModel> list = new List<MessageModel>();

        /// 
        /// 建立迭代器物件
        /// 
        /// Iterator 實例
        public IIterator CreateIterator()
        {
            return new Iterator(this);
        }

        /// 
        /// 集合內的物件總數
        /// 
        public int Count
        {
            get { return list.Count; }
        }

        /// 
        /// 索引器
        /// 
        /// index
        /// MessageModel
        public MessageModel this[int index]
        {
            get { return list[index]; }
            set { list.Add(value); }
        }
    }
}

ConcreteAggregate 設計要點

  • 工廠方法:CreateIterator() 返回針對此集合的迭代器實例。
  • 內部儲存:使用 List<MessageModel> 管理元素,封裝儲存細節。
  • 索引器支援:提供 this[int index] 讓迭代器存取元素。
  • 計數屬性:Count 讓迭代器判斷遍歷邊界。

迭代器模式角色對應(前兩篇)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
模式角色本例類別說明
AggregateICollection抽象集合介面
ConcreteAggregateCollection具體集合,管理元素與建立迭代器
IteratorIIterator抽象迭代器介面(下一篇)
ConcreteIteratorIterator具體迭代器,實作遍歷邏輯(下一篇)