public static void Run()
        {
            ClockPublisher  publisher  = new ClockPublisher();
            ClockSubscriber subscriber = new ClockSubscriber();

            subscriber.Susbscribe(publisher);
            publisher.Run();
        }
        public static void Main()
        {
            ClockPublisher clock = new ClockPublisher();

            ISubscriber dc = new DisplayClock(clock);
            ISubscriber lc = new LogClock(clock);

            lc.AddSubscriber();                   // subscribe for event
            dc.AddSubscriber();                   // subscribe for event

            clock.GetUpdatedTimeOnSecondChange(); // publish event

            Console.ReadKey();
        }
 public LogClock(ClockPublisher clock)
 {
     _clock = clock;
 }
 public DisplayClock(ClockPublisher clock)
 {
     _clock = clock;
 }