Example #1
0
        static void Main(string[] args)
        {
            // base implementation
            var structure = new ObjectStructure();

            structure.Add(new ElementA());
            structure.Add(new ElementB());
            structure.Accept(new ConcreteVisitor1());
            structure.Accept(new ConcreteVisitor2());

            //---------------------------------
            doubleDespetcher.Visitor v = new doubleDespetcher.Visitor();
            Graphic g = new Dot();

            // Метод accept() – переопределен, но не перегружен. А значит, связан
            // динамически. Поэтому реализация `accept` будет выбрана во время выполнения
            // уже из того класса, объект которого его вызвал (класс Dot).
            g.accept(v);
            //---------------------

            Console.WriteLine("Bank sample: ");
            testReal();
            Console.ReadLine();
        }