Example #1
0
        static bool TestObserverPattern()
        {
            Console.WriteLine("TESTING THE OBSERVER DESIGN PATTERN: ");

            //The subject that will be observed
            Subject subject = new ConcreteSubject("ABC");

            //Attaching 3 observers
            subject.AttachRange(new List <Observer> {
                new ConcreteObserver("o1"),
                new ConcreteObserver("o2"),
                new ConcreteObserver("o3")
            });

            //This will trigger the notification to the observers
            subject.SetState("XYZ");

            //Output:
            //Observer o1 notified. New subject state: XYZ
            //Observer o2 notified. New subject state: XYZ
            //Observer o3 notified. New subject state: XYZ

            Console.ReadKey();

            return(true);
        }