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(); }
void Start() { NewsAggregator newsAggregator = new NewsAggregator(); var twitterWidget = new TwitterWidget(newsAggregator); var lentaWidget = new LentaWidget(newsAggregator); var tvWidget = new TvWidget(newsAggregator); newsAggregator.NewNewsAvalible(); Debug.Log("------------------------------------------------------------------------------"); twitterWidget.RemoveFromSubject(); newsAggregator.NewNewsAvalible(); }
void Start() { newsAggregator = new NewsAgregator(); twitterWidget = new TwitterWidget(newsAggregator); lentaWidget = new LentaWidget(newsAggregator); tvWidget = new TvWidget(newsAggregator); newsAggregator.NeNewsAvalable(); // оповещение twitterWidget.RemoveFromSubject(); // удаление из оповещаемых newsAggregator.NeNewsAvalable(); // оповещение }
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(); }
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(); }
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(); }
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(); }
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(); }