Esempio n. 1
0
        private static void Main()
        {
            var subject   = new ConcreteSubject();
            var observer1 = new ConcreteObserver("observer1");
            var observer2 = new ConcreteObserver("observer2");

            subject.Attach(observer1);
            subject.Attach(observer2);
            subject.SubjectState = "Modified";
            subject.Detach(observer1);
            subject.Detach(observer2);
            subject.SubjectState = "Modified Again !";
            Console.ReadKey();
        }
        public void ObserverTest4()
        {
            ConcreteSubject  subject   = new ConcreteSubject();
            ConcreteObserver observer1 = new ConcreteObserver();
            ConcreteObserver observer2 = new ConcreteObserver();

            subject.Attach(observer1);
            subject.Notify();
            subject.Attach(observer2);
            subject.Notify();
            subject.Detach(observer1);
            subject.Notify();
            Assert.True(observer1.Notified == observer2.Notified);
        }
Esempio n. 3
0
        public void RemoveObserver()
        {
            ConcreteSubject subject = new ConcreteSubject();

            subject.brush = Brushes.Red;
            Ellipse          testEll1 = new Ellipse();
            ConcreteObserver ob1      = new ConcreteObserver(subject, testEll1);

            subject.Attach(ob1);
            subject.Notify();
            subject.Detach(ob1);
            subject.brush = Brushes.BlueViolet;
            subject.Notify();
            Assert.AreEqual(testEll1.Fill, Brushes.Red);
        }
Esempio n. 4
0
        public void TestObserverPattern()
        {
            cs.State = 1;
            Assert.AreEqual(1, co1.State);
            Assert.AreEqual(1, co2.State);
            Assert.AreEqual(1, co3.State);

            cs.State = 25;
            Assert.AreEqual(25, co1.State);
            Assert.AreEqual(25, co2.State);
            Assert.AreEqual(25, co3.State);

            cs.Detach(co2);
            cs.State = 42;
            Assert.AreEqual(42, co1.State);
            Assert.AreEqual(25, co2.State);
            Assert.AreEqual(42, co3.State);
        }
Esempio n. 5
0
        public void Start()
        {
            var subject = new ConcreteSubject();

            var firstConcreteObserver  = new ConcreteObserver(subject, "First");
            var secondConcreteObserver = new ConcreteObserver(subject, "Second");

            subject.Attach(firstConcreteObserver);
            subject.Attach(secondConcreteObserver);

            subject.SubjectState = "FirstState";
            subject.Notify();

            subject.Detach(secondConcreteObserver);

            subject.SubjectState = "SecondState";
            subject.Notify();
        }
Esempio n. 6
0
        static void MainABC(string[] args)
        {
            // The client code.
            var subject   = new ConcreteSubject();
            var observerA = new ConcreteObserverA();

            subject.Attach(observerA);

            var observerB = new ConcreteObserverB();

            subject.Attach(observerB);

            subject.SomeBusinessLogic();
            subject.SomeBusinessLogic();

            subject.Detach(observerB);

            subject.SomeBusinessLogic();
        }
Esempio n. 7
0
        static void Main(string[] args)
        {
            var concreteSubject = new ConcreteSubject();
            var observer1       = new ConcreteObserver("Observer 1");
            var observer2       = new ConcreteObserver("Observer 2");

            concreteSubject.ConcreteSubjectState = 2;

            concreteSubject.Attach(observer1);
            observer1.Update(concreteSubject);

            concreteSubject.Attach(observer2);
            observer2.Update(concreteSubject);

            concreteSubject.ConcreteSubjectState = 3;

            concreteSubject.Detach(observer1);

            concreteSubject.ConcreteSubjectState = 4;
        }
        static void Main(string[] args)
        {
            var subject   = new ConcreteSubject();
            var observer1 = new ConcreteObserver1();

            subject.Attach(observer1);

            var observer2 = new ConcreteObserver2();

            subject.Attach(observer2);

            var observer3 = new ConcreteObserver3();

            subject.Attach(observer3);


            subject.BusinessLogic();
            subject.BusinessLogic();

            subject.Detach(observer3);

            subject.BusinessLogic();
        }