Accept() 공개 메소드

public Accept ( Visitor visitor ) : void
visitor Visitor
리턴 void
예제 #1
0
        static void Main(string[] args)
        {
            // canonical
            var objectStructure = new ObjectStructure();

            objectStructure.Attach(new ConcreteElementA());
            objectStructure.Attach(new ConcreteElementB());
            objectStructure.Attach(new ConcreteElementC());

            objectStructure.Accept(new ConcreteVisitor1());
            objectStructure.Accept(new ConcreteVisitor2());

            // live
            Console.WriteLine();
            var staff = new Staff();

            staff.Attach(new Director("Azat"));
            staff.Attach(new Clerk("Joe"));
            staff.Attach(new Clerk("Ann"));

            for (int i = 0; i < 3; i++)
            {
                staff.Accept(new VacationVisitor());
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            ObjectStructure objectStructure = new ObjectStructure();

            objectStructure.Attach(new ConcreteElementA());
            objectStructure.Attach(new ConcreteElementB());
            objectStructure.Accept(new ConcreteVisitorFirst());
            objectStructure.Accept(new ConcreteVisitorSecond());
        }
예제 #3
0
        static void Main()
        {
            var objectStructure = new ObjectStructure();

            objectStructure.Attach(new ConcreteElementA());
            objectStructure.Attach(new ConcreteElementB());
            objectStructure.Accept(new ConcreteVisitorA());
            objectStructure.Accept(new ConcreteVisitorB());
        }
예제 #4
0
        static void Main()
        {
            ObjectStructure structure = new ObjectStructure();

            structure.Add(new ConcreteElementA());
            structure.Add(new ConcreteElementB());

            structure.Accept(new ConcreteVisitor1());
            structure.Accept(new ConcreteVisitor2());
        }
예제 #5
0
        static void Main(string[] args)
        {
            ObjectStructure os = new ObjectStructure();

            os.addElement(new ConcreteElementA());
            os.addElement(new ConcreteElementB());

            os.Accept(new ConcreteVisitor1());

            os.Accept(new ConcreteVisitor2());
        }
예제 #6
0
        static void Main(string[] args)
        {
            ObjectStructure o = new ObjectStructure();

            o.Attach(new ElementA());
            o.Attach(new ElementB());

            o.Accept(new Visitor1());
            o.Accept(new Visitor2());

            Console.ReadKey();
        }
예제 #7
0
        static void Main(string[] args)
        {
            ObjectStructure o = new ObjectStructure();

            o.Attach(new ElementA());
            o.Attach(new ElementB());

            o.Accept(new Visitor1());
            o.Accept(new Visitor2());

            Console.ReadKey();
        }
예제 #8
0
        static void Main(string[] args)
        {
            ObjectStructure os = new ObjectStructure();
            os.Add(new ConcreteElementA());
            os.Add(new ConcreteElementB());

            ConcreteVisitor1 cv1 = new ConcreteVisitor1();
            ConcreteVisitor2 cv2 = new ConcreteVisitor2();
            os.Accept(cv1);
            os.Accept(cv2);

            Console.Read();
        }
예제 #9
0
파일: Program.cs 프로젝트: Alex-LG/DP
    static void Main()
    {
      ObjectStructure o = new ObjectStructure();
      o.Attach(new ConcreteElementA());
      o.Attach(new ConcreteElementB());
 
      ConcreteVisitor1 v1 = new ConcreteVisitor1();
      ConcreteVisitor2 v2 = new ConcreteVisitor2();
 
      o.Accept(v1);
      o.Accept(v2);
 
      Console.ReadKey();
    }
        static void Main(string[] args)
        {
            ObjectStructure o = new ObjectStructure();

            o.Anexar(new ConcreteElementA());
            o.Anexar(new ConcreteElementB());

            ConcreteVisitor1 v1 = new ConcreteVisitor1();
            ConcreteVisitor2 v2 = new ConcreteVisitor2();

            o.Accept(v1);
            o.Accept(v2);

            Console.ReadKey();
        }
        static void Main()
        {
            ObjectStructure obj = new ObjectStructure();

            obj.Attach(new ConcreteElementA());
            obj.Attach(new ConcreteElementB());

            ConcreteVisitor1 v1 = new ConcreteVisitor1();
            ConcreteVisitor2 v2 = new ConcreteVisitor2();

            obj.Accept(v1);
            obj.Accept(v2);

            Console.ReadKey();
        }
예제 #12
0
        private static void Main()
        {
            var objectStructure = new ObjectStructure();

            objectStructure.Attach(new ConcreteElementA());
            objectStructure.Attach(new ConcreteElementB());

            var visitor1 = new ConcreteVisitor1();
            var visitor2 = new ConcreteVisitor2();

            objectStructure.Accept(visitor1);
            objectStructure.Accept(visitor2);

            Console.ReadKey();
        }
예제 #13
0
        private static void Main()
        {
            var objectStructure = new ObjectStructure();

            objectStructure.Attach(new ConcreteElementA());
            objectStructure.Attach(new ConcreteElementB());

            var concreteVisitorA = new ConcreteVisitorA();
            var concreteVisitorB = new ConcreteVisitorB();

            objectStructure.Accept(concreteVisitorA);
            objectStructure.Accept(concreteVisitorB);

            Console.ReadKey();
        }
예제 #14
0
        static void Main(string[] args)
        {
            ObjectStructure o = new ObjectStructure();

            o.Attach(new Element1());
            o.Attach(new Element2());

            var v1 = new Visitor1();
            var v2 = new Visitor2();

            o.Accept(v1);
            o.Accept(v2);

            Console.ReadKey();
        }
예제 #15
0
        static void Main(string[] args)
        {
            ObjectStructure objectStructure = new ObjectStructure();

            objectStructure.Attach(new ConcreteElementA());
            objectStructure.Attach(new ConcreteElementB());

            ConcreteVisitor1 concreteVisitor1 = new ConcreteVisitor1();
            ConcreteVisitor2 concreteVisitor2 = new ConcreteVisitor2();

            objectStructure.Accept(concreteVisitor1);
            objectStructure.Accept(concreteVisitor2);

            Console.Read();
        }
예제 #16
0
        static void Main()
        {
            // 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);
        }
예제 #17
0
        static void Main(string[] args)
        {
            ObjectStructure list = new ObjectStructure();
            list.AddEmployee(new FulltimeEmployee("Mike", 2000));
            list.AddEmployee(new FulltimeEmployee("Tony", 3000));
            list.AddEmployee(new ParttimeEmployee("Nancen", 800));
            list.AddEmployee(new ParttimeEmployee("Bibo", 500));

            FinanceVisitor fVisitor = new FinanceVisitor();
            HrVisitor hVisitor = new HrVisitor();

            list.Accept(fVisitor);
            list.Accept(hVisitor);

            Console.ReadKey();
        }
예제 #18
0
        static void Main(string[] args)
        {
            //访问者模式
            ObjectStructure o = new ObjectStructure();

            o.Attach(new ConcreteElementA());
            o.Attach(new ConcreteElementB());

            ConcreteVisitor1 v1 = new ConcreteVisitor1();

            o.Accept(v1);
            //o.Accept();



            ObjectStructurePerson person = new ObjectStructurePerson();

            person.Attach(new Man());
            person.Attach(new Woman());

            Success sc = new Success();

            person.Display(sc);

            Console.Read();
        }
예제 #19
0
        static void Main()
        {
            // 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);

            // Wait for user
            Console.ReadKey();
        }
예제 #20
0
        void Main()
        {
            DbContext context   = new DbContext();
            var       structure = new ObjectStructure();

            structure.Add(new BaseRepository <Inquiry>(context));

            structure.Accept(new ConcreteVisitor1());
        }
예제 #21
0
        static void Main(string[] args)
        {
            SampleObjectStructure sampleObjectStructure = new SampleObjectStructure();

            sampleObjectStructure.Attach(new Man());
            sampleObjectStructure.Attach(new Woman());

            // 成功時的反應
            Action success = new Success();

            sampleObjectStructure.Display(success);

            // 失敗時的反應
            Action failing = new Failing();

            sampleObjectStructure.Display(failing);

            // 戀愛時的反應
            Action amativeness = new Amativeness();

            sampleObjectStructure.Display(amativeness);

            // 結婚時的反應
            Action marriage = new Marriage();

            sampleObjectStructure.Display(marriage);

            Console.WriteLine();

            ObjectStructure objectStructure = new ObjectStructure();

            objectStructure.Attach(new ConcreteElementA());
            objectStructure.Attach(new ConcreteElementB());

            Visitor concreteVisitor1 = new ConcreteVisitor1();
            Visitor concreteVisitor2 = new ConcreteVisitor2();

            objectStructure.Accept(concreteVisitor1);
            objectStructure.Accept(concreteVisitor2);

            Console.ReadLine();
        }
        public static void Run()
        {
            Console.WriteLine("This structural code demonstrates the Visitor pattern in which an object traverses an object structure and performs the same operation on each node in this structure. Different visitor objects define different operations.\n");
            ObjectStructure o = new ObjectStructure();

            o.Attach(new ConcreteElementA());
            o.Attach(new ConcreteElementB());

            ConcreteVisitor1 v1 = new ConcreteVisitor1();
            ConcreteVisitor2 v2 = new ConcreteVisitor2();

            o.Accept(v1);
            o.Accept(v2);

            /*
             * ConcreteElementA visited by ConcreteVisitor1
             * ConcreteElementB visited by ConcreteVisitor1
             * ConcreteElementA visited by ConcreteVisitor2
             * ConcreteElementB visited by ConcreteVisitor2
             */
        }
예제 #23
0
        private static void Main(string[] args)
        {
            // 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);

            // Wait for user

            Console.ReadKey();
        }
        static void Main(string[] args)
        {
            try
            {
                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);
            }
            finally
            {
                Console.ReadKey();
            }
        }
예제 #25
0
 static void Main()
 {
     var objectStructure = new ObjectStructure();
     objectStructure.Attach(new ConcreteElementA());
     objectStructure.Attach(new ConcreteElementB());
     objectStructure.Accept(new ConcreteVisitorA());
     objectStructure.Accept(new ConcreteVisitorB());
 }