void Start()
        {
            List <IVisitorAcceptance> components = new List <IVisitorAcceptance>
            {
                new ConcreteComponentA(),
                new ConcreteComponentB()
            };

            Debug.Log("The client code works with all visitors via the base Visitor interface:");
            var visitor1 = new ConcreteVisitor1();

            Client.ClientCode(components, visitor1);

            Debug.Log("It allows the same client code to work with different types of visitors:");
            var visitor2 = new ConcreteVisitor2();

            Client.ClientCode(components, visitor2);
        }
Esempio n. 2
0
        //Відвідувач - Visitor
        public Run Visitor()
        {
            Console.WriteLine("\nVisitor:");

            // Setup structure
            ObjectStructure o = new ObjectStructure();
            o.Attach(new ConcreteElementA());
            o.Attach(new ConcreteElementB());

            // Create visitor objects
            ConcreteVisitor1 v1 = new ConcreteVisitor1();
            ConcreteVisitor2 v2 = new ConcreteVisitor2();

            // Structure accepting visitors
            o.Accept(v1);
            o.Accept(v2);

            return this;
        }