Exemple #1
0
        static void Main(string[] args)
        {
            // создание одного издателя событий
            var newsAggregator = new NewsAggregator();
            // создание трех наблюдателей
            var twitterWidget = new TwitterWidget();
            var lentaWidget   = new LentaWidget();
            var tvWidget      = new TvWidget();

            // подписка наблюдателей на событие NewsChanged издателя
            //System.Console.WriteLine(newsAggregator.NewsChanged);
            newsAggregator.NewsChanged += twitterWidget.Update;
            //System.Console.WriteLine(newsAggregator.NewsChanged);
            newsAggregator.NewsChanged += lentaWidget.Update;
            //System.Console.WriteLine(newsAggregator.NewsChanged);
            newsAggregator.NewsChanged += tvWidget.Update;
            //System.Console.WriteLine(newsAggregator.NewsChanged);

            newsAggregator.NewNewsAvailable();
            Console.WriteLine();

            newsAggregator.NewsChanged -= twitterWidget.Update;
            newsAggregator.NewNewsAvailable();
            Console.WriteLine();
            newsAggregator.NewNewsAvailable();

            Console.ReadLine();
        }
Exemple #2
0
        static void Main(string[] args)
        {
            //объявление новых наблюдателей (виджетов)
            var newsAggregator = new NewsAggregator();
            var twitterWidget  = new TwitterWidget(newsAggregator); // регистрация во время создания объекта
            var lentaWidget    = new LentaWidget(newsAggregator);
            var tvWidget       = new TvWidget(newsAggregator);

            //вызов метода, производящего обновление новостей
            newsAggregator.NewNewsAvailable();
            Console.WriteLine();
            newsAggregator.NewNewsAvailable();

            Console.ReadLine();
        }
Exemple #3
0
        static void Main(string[] args)
        {
            var newsAggregator = new NewsAggregator();

            var twitterWidget = new TwitterWidget(newsAggregator);
            var lentaWidget   = new LentaWidget(newsAggregator);
            var tvWidget      = new TvWidget(newsAggregator);

            newsAggregator.NewNewsAvailable();
            Console.WriteLine();
            twitterWidget.RemoveFormSubject();
            newsAggregator.NewNewsAvailable();

            Console.ReadLine();
        }
Exemple #4
0
        static void Main()
        {
            var newsAggregator = new NewsAggregator();

            var twitterWidget = new TwitterWidget(newsAggregator);
            var lentaWidget   = new LentaWidget(newsAggregator);
            var tvWidget      = new TvWidget(newsAggregator);

            newsAggregator.NewNewsAvailable();

            Console.WriteLine();

            twitterWidget.Unsubscribe();

            newsAggregator.NewNewsAvailable();
        }
Exemple #5
0
        static void Main(string[] args)
        {
            var newsAggregator = new NewsAggregator();

            var instagramWidget = new InstagramWidget();
            var twitterWidget   = new TwitterWidget();

            newsAggregator.NewsChanged += new NewsChangedEventHandler(instagramWidget.Update);
            newsAggregator.NewsChanged += new NewsChangedEventHandler(twitterWidget.Update);

            newsAggregator.NewNewsAvailable();
            Console.WriteLine();

            newsAggregator.NewsChanged -= new NewsChangedEventHandler(instagramWidget.Update);
            newsAggregator.NewNewsAvailable();

            Console.ReadLine();
        }
        static void Main(string[] args)
        {
            var newsAggregator       = new NewsAggregator();
            var franceFootballWidget = new FranceFootballWidget();
            var deportivoWidget      = new DeportivoWidget();
            var barcaNewsWidget      = new BarcaNewsWidget();

            newsAggregator.NewsChanged += franceFootballWidget.Update;
            newsAggregator.NewsChanged += deportivoWidget.Update;
            newsAggregator.NewsChanged += barcaNewsWidget.Update;

            newsAggregator.NewNewsAvailable();
            Console.WriteLine();

            newsAggregator.NewsChanged -= franceFootballWidget.Update;
            newsAggregator.NewNewsAvailable();

            Console.ReadLine();
        }
Exemple #7
0
        static void Main(string[] args)
        {
            var newsAggregator = new NewsAggregator();
            var twitterWidget  = new TwitterWidget();
            var lentaWidget    = new LentaWidget();
            var tvWidget       = new TvWidget();

            newsAggregator.NewsChanged += twitterWidget.Update;
            newsAggregator.NewsChanged += lentaWidget.Update;
            newsAggregator.NewsChanged += tvWidget.Update;

            newsAggregator.NewNewsAvailable();
            Console.WriteLine();

            newsAggregator.NewsChanged -= twitterWidget.Update;
            newsAggregator.NewNewsAvailable();

            Console.ReadLine();
        }
Exemple #8
0
        static void Main()
        {
            var aggregator = new NewsAggregator();
            var twitter    = new TwitterObserver();
            var vk         = new VkObserver();

            aggregator.NewsChanged += twitter.Update;
            aggregator.NewsChanged += vk.Update;
            aggregator.NewNewsAvailable();

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

            aggregator.NewNewsAvailable();
            aggregator.NewsChanged -= vk.Update;
            Console.WriteLine("--------------");
            aggregator.NewNewsAvailable();


            Console.ReadLine();
        }
Exemple #9
0
        static void Main(string[] args)
        {
            var newsAggregator = new NewsAggregator();

            var twitterWidget = new TwitterWidget();
            var lentaWidget   = new LentaWidget();
            var tvWidget      = new TvWidget();

            //handlers can be matched inside ctor of widget class
            //newsAggregator.NewsChanged += (s, a) => Console.WriteLine("{0} say: {1}, {2}, {3}", s, a.Lenta, a.Tv, a.Twitter);
            newsAggregator.NewsChanged += twitterWidget.Update;
            newsAggregator.NewsChanged += lentaWidget.Update;
            newsAggregator.NewsChanged += tvWidget.Update;

            newsAggregator.NewNewsAvailable();
            Console.WriteLine();
            newsAggregator.NewsChanged -= twitterWidget.Update;
            newsAggregator.NewNewsAvailable();

            Console.ReadLine();
        }