コード例 #1
0
        static void Main(string[] args)
        {
            /*Notifier notifier = new Notifier();
             * var col = new MyCollection<IDisplay>
             * {
             *  new ConsoleDisplay(),
             *  new FileDisplay()
             * };
             * foreach (IDisplay disp in col)
             * {
             *  notifier.TimerEvent += disp.Display;
             * }
             *
             * notifier.Update(5);*/

            TimeNotifier time = new TimeNotifier(5);
            var          col  = new MyCollection <IDisplay>();

            col.Add(new ConsoleDisplay());
            col.Add(new FileDisplay());

            foreach (IDisplay disp in col)
            {
                time.Timers.Elapsed += disp.Display;
            }
            time.Update();

            Console.ReadLine();
        }
コード例 #2
0
        public static void Main(string[] args)
        {
            TimeNotifier notifier = new TimeNotifier();

            AbstractObserver[] observers = new AbstractObserver[3];

            observers[0] = new FirstObserver();
            observers[0].Register(notifier);
            observers[1] = new SecondObserver();
            observers[1].Register(notifier);
            observers[2] = new ThirdObserver();
            observers[2].Register(notifier);

            notifier.SetTimer(5000);

            foreach (var observer in observers)
            {
                foreach (var item in observer.GetTriggers())
                {
                    Console.WriteLine(item);
                }
            }

            Console.WriteLine("--------------------");

            observers[1].Unregister(notifier);

            notifier.SetTimer(5000);

            foreach (var observer in observers)
            {
                foreach (var item in observer.GetTriggers())
                {
                    Console.WriteLine(item);
                }
            }

            Console.ReadKey();
        }
コード例 #3
0
        /// <summary>
        /// Unregisters the specified notifier.
        /// </summary>
        /// <param name="notifier">The notifier.</param>
        /// <exception cref="ArgumentException">Throws when notifier is null</exception>
        public void Unregister(TimeNotifier notifier)
        {
            ValidateOnNull(notifier, nameof(notifier));

            notifier.TimeElapsed -= Do;
        }