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