コード例 #1
0
ファイル: observer.cs プロジェクト: Liorkinn/ObserverPattern
        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);
        }
コード例 #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.Detach(observerB);

            subject.SomeBusinessLogic();
        }
コード例 #3
0
        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();
        }