Example #1
0
        static void Main(string[] args)
        {
            var observerA = new ConcreteObserverA();
            var observerB = new ConcreteObserverB();
            var subject   = new Subject();

            subject.RegisterObserver(observerA);
            subject.RegisterObserver(observerB);
            subject.NotifyObservers();
            Console.WriteLine("--------------------");
            subject.UnregisterObserver(observerA);
            subject.NotifyObservers();
        }
Example #2
0
        static void Main(string[] args)
        {
            var subject   = new Subject();
            var observerA = new ConcreteObserverA();

            subject.Attach(observerA);

            var observerB = new ConcreteObserverB();

            subject.Attach(observerB);

            subject.SomeBusinessLogic();
            subject.SomeBusinessLogic();
            subject.Dettach(observerB);
            subject.SomeBusinessLogic();
        }
        static void Main(string[] args)
        {
            ConcreteSubject myConcreteSubject = new ConcreteSubject();

            ConcreteObserverA myConcreteObserverA = new ConcreteObserverA(); //Console
            ConcreteObserverB myConcreteObserverB = new ConcreteObserverB(); //Forms Fenster

            myConcreteSubject.addObserver(myConcreteObserverA);
            myConcreteSubject.addObserver(myConcreteObserverB);
            myConcreteSubject.setState("Hello World");

            Application.Run(myConcreteObserverB); //Forms Fenster
            DoSomeShit test = new DoSomeShit();

            test.DoSomething(myConcreteSubject);
        }
Example #4
0
        static void Main()
        {
            var rnd       = new Random();
            var subject   = new Subject();
            var observerA = new ConcreteObserverA();
            var observerB = new ConcreteObserverB();

            Parallel.For(0, 5, (i, loopState) =>
            {
                int delay;
                lock (rnd)
                    delay = rnd.Next(1, 1001);
                Thread.Sleep(delay);
                Console.WriteLine("Thread : " + i);
                subject.Attach(observerA);
                subject.DoSomething();
                subject.Detach(observerB);
            });
        }
Example #5
0
        static void Main(string[] args)
        {
            var subject   = new Publisher();
            var observerA = new ConcreteObserverA();

            subject.Attach(observerA);

            var observerB = new ConcreteObserverB();

            subject.Attach(observerB);

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

            subject.Detach(observerB);

            subject.SomeBusinessLogic();

            Console.ReadLine();
        }
Example #6
0
        static void Main(string[] args)
        {
            var rnd       = new Random();
            var subject   = new Subject();
            var observerA = new ConcreteObserverA();
            int delay;

            lock (rnd);
            delay = rnd.Next(1, 1001);
            Thread.Sleep(delay);
            subject.Attach(observerA);

            var observerB = new ConcreteObserverB();

            subject.Attach(observerB);

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

            subject.Detach(observerB);

            subject.SomeBusinessLogic();
        }