コード例 #1
0
        static void Main(string[] args)
        {
            // TODO: шаг 5

            /*
             * В клиентском коде и в классах коллекций не должно остаться кода обхода элементов.
             * Клиент должен получать новый итератор из объекта коллекции каждый раз, когда ему нужно перебрать её элементы.
             */
            Aggregate a = new ConcreteAggregate();
            Iterator  i = a.CreateIterator();

            if (!i.IsDone())
            {
                object item = i.First();
                while (!i.IsDone())
                {
                    item = i.Next();
                }
            }
            //------------------------------------------------------------------------------------------------------------

            // step 2
            Library library = new Library();
            Reader  reader  = new Reader();

            reader.SeeBooks(library);

            Console.Read();
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: 44r0n/IteratorPattern
 static void Print(Iterator <string> iterator)
 {
     for (iterator.First(); !iterator.IsDone(); iterator.Next())
     {
         Console.WriteLine(iterator.CurrentItem());
     }
 }
コード例 #3
0
        private void button1_Click(object sender, EventArgs e)
        {
            iterator.Next();

            // I would not normally do something so useless but I felt the need to show
            // of the IsDone() method.
            if (iterator.IsDone())
            {
                lbl_age.Text  = "";
                lbl_name.Text = "There are no people left.";
            }
            else
            {
                SetLblTxt();
            }
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: zyssx/Unity3DTraining
        static void Main(string[] args)
        {
            ConcreteAggregate aggregate = new ConcreteAggregate();

            for (int i = 0; i < 10; i++)
            {
                aggregate.SetItems(i, "求职者" + (i + 1));
            }
            Iterator iterator = aggregate.CreateIterator();

            while (!iterator.IsDone())
            {
                Console.WriteLine(iterator.CurrentItem() + "来我公司面试");
                iterator.Next();
            }
        }
コード例 #5
0
        static void Main(string[] args)
        {
            ConcreteAggregate aggregate = new ConcreteAggregate();

            aggregate[0] = "A";
            aggregate[1] = "B";
            aggregate[2] = "C";
            aggregate[3] = "D";
            aggregate[4] = "E";

            Iterator iterator = aggregate.CreateIterator();
            object   item     = iterator.First();

            while (!iterator.IsDone())
            {
                Console.WriteLine(item);
                item = iterator.Next();
            }
        }
コード例 #6
0
        static void Main(string[] args)
        {
            ConcreateAggregate concreateAggregate = new ConcreateAggregate();

            for (int i = 0; i < 10; i++)
            {
                concreateAggregate[i] = new Random().Next();
            }

            //Iterator iterator=new ConcreateIterator(concreateAggregate);
            Iterator iterator = concreateAggregate.CreateIterator();
            object   item     = iterator.First();

            while (!iterator.IsDone())
            {
                Console.WriteLine(iterator.CurrentItem());
                iterator.Next();
            }

            Console.ReadKey();
        }
コード例 #7
0
        static void Main(string[] args)
        {
            ConcreteAggregate ca = new ConcreteAggregate();

            ca[0] = "test1";
            ca[1] = "test2";
            ca[2] = "test3";

            //Iterator iterator = new ConcreteIterator(ca);

            Iterator iterator = ca.CreateIterator();
            object   obj      = iterator.First();

            while (!iterator.IsDone())
            {
                Console.WriteLine(iterator.CurrentItem().ToString());
                iterator.Next();
            }

            Console.Read();
        }