static void Main(string[] args) { var subject = new Subject(); var observerA = new ConcreteObserverA(); var observerB = new ConcreteObserverB(); do { Console.WriteLine("[1]. Добавить наблюдателя.\n[2]. Удалить наблюдателя.\n[3]. Отправить сообщение.\n[4]. Выход."); int i = int.Parse(Console.ReadLine()); switch (i) { case 1: Console.WriteLine("[1]. Добавить нового ГАИШНИКА в ГИБДД под номером 1.\n[2]. Добавить нового ГАИШНИКА в ГИБДД под номером 2."); int key = Convert.ToInt32(Console.ReadLine()); if (key == 1) { subject.Add(observerA); Console.ReadKey(); Console.Clear(); } if (key == 2) { subject.Add(observerB); Console.ReadKey(); Console.Clear(); } break; case 2: Console.WriteLine("[1]. Отсоединить ГАИШНИКА в ГИБДД под номером 1.\n[2]. Отсоединить ГАИШНИКА в ГИБДД под номером 2."); int keyy = Convert.ToInt32(Console.ReadLine()); if (keyy == 1) { subject.Delete(observerA); Console.ReadKey(); Console.Clear(); } if (keyy == 2) { subject.Delete(observerB); Console.ReadKey(); Console.Clear(); } break; case 3: subject.SomeBusinessLogic(); break; case 4: Environment.Exit(0); break; default: Console.WriteLine("Ошибка."); break; } } while (true); }
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.Detach(observerB); subject.SomeBusinessLogic(); }
static void Main(string[] args) { // EN: The client code. // // RU: Клиентский код. var subject = new Subject(); var observerA = new ConcreteObserverA(); subject.Attach(observerA); var observerB = new ConcreteObserverB(); subject.Attach(observerB); subject.SomeBusinessLogic(); subject.SomeBusinessLogic(); subject.Detach(observerB); subject.SomeBusinessLogic(); }