Пример #1
0
        public static void Main(string[] args)
        {
            IList <object> products = new List <object>();

            products.Add("倚天剑");
            products.Add("屠龙刀");
            products.Add("断肠草");
            products.Add("葵花宝典");
            products.Add("四十二章经");

            AbstractObjectList objectList = new ProductList(products);      // 创建聚合对象
            AbstractIterator   iterator   = objectList.CreateIterator();    // 创建迭代器对象

            Console.WriteLine("正向遍历");
            while (!iterator.IsLast())
            {
                Console.Write(iterator.GetNextItem() + ",");
                iterator.Next();
            }

            Console.WriteLine();
            Console.WriteLine("-------------------------------------------------------");
            Console.WriteLine("逆向遍历");
            while (!iterator.IsFirst())
            {
                Console.Write(iterator.GetPreviousItem() + ",");
                iterator.Previous();
            }

            Console.ReadKey();
        }
Пример #2
0
        public void GenerateGameOverWindow2()
        {
            var BoardIter = new TilesCollection();

            for (int i = 0; i < 20; i++)
            {
                for (int y = 0; y < 20; y++)
                {
                    BoardIter[i, y] = TilesSet.GetTile(i, y);
                }
            }

            AbstractIterator iter = BoardIter.CreateIterator();

            object item = iter.First();

            while (item != null)
            {
                Rectangle ColorBlock = new Rectangle();
                ColorBlock.Name = "";

                ColorBlock.Fill = Brushes.Black;
                Tile tile = (Tile)item;
                Grid.SetColumn(ColorBlock, tile.x);
                Grid.SetRow(ColorBlock, tile.y);
                gridMain.Children.Add(ColorBlock);
                item = iter.Next();
            }
        }
Пример #3
0
        public override void Accept(IVisitor visitor)
        {
            visitor.Visit(this);

            AbstractIterator it = CreateIterator();

            for (it.First(); !it.IsDone(); it.MoveNext())
            {
                it.GetCurrent().Accept(visitor);
            }
        }
Пример #4
0
        public override void Display()
        {
            Console.WriteLine("\n\nCompany Name:\t{0}\nDescription:\t{1}\n", _name, _description);

            AbstractIterator it = CreateIterator();

            for (it.First(); !it.IsDone(); it.MoveNext())
            {
                it.GetCurrent().Display();
            }
        }
Пример #5
0
 internal DelegateIterator(AbstractIterator delegateIterator)
 {
     this.delegateIterator = delegateIterator;
 }
Пример #6
0
 internal ReverseIterator(AbstractIterator forwardIterator) : base(forwardIterator)
 {
 }