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(); }
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); }
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); }); }
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(); }
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(); }