Beispiel #1
0
        static void Main(string[] args)
        {
            #region 结构实现
            ConcreteAggregate a = new ConcreteAggregate();
            a[0] = "Item A";
            a[1] = "Item B";
            a[2] = "Item C";
            a[3] = "Item D";

            ConcreteIterator i = a.CreateIterator() as ConcreteIterator;

            Console.WriteLine("Iterating over collection:");
            object item = i.First();
            while (item != null)
            {
                Console.WriteLine(item);
                item = i.Next();
            }
            #endregion

            Console.WriteLine("******************************");

            #region 实践应用
            Practical.ExtrinsicIterator.Iterator  _iterator;
            Practical.ExtrinsicIterator.Aggregate _aggregate = new Practical.ExtrinsicIterator.ConcreteAggregate();
            // 获得迭代器
            _iterator = _aggregate.CreateIterator();
            while (!_iterator.IsDone())
            {
                Console.WriteLine(_iterator.CurrentItem());
                _iterator.Next();
            }


            Practical.IntrinsicIterator.Iterator  _iterator1;
            Practical.IntrinsicIterator.Aggregate _aggregate1 = new Practical.IntrinsicIterator.ConcreteAggregate();
            // 获得迭代器
            _iterator1 = _aggregate1.CreateIterator();
            while (!_iterator1.IsDone())
            {
                Console.WriteLine(_iterator1.CurrentItem());
                _iterator1.Next();
            }

            #endregion

            Console.ReadKey();
        }