Exemplo n.º 1
0
        static void Main()
        {
            var provider  = new WeatherSupplier();
            var observer1 = new WeatherMonitor(
                "Температура и налягане",
                new List <WeaterCharecteristic> {
                WeaterCharecteristic.Temperature,
                WeaterCharecteristic.Pressure
            });

            var observer2 = new WeatherMonitor(
                "Влажност",
                new List <WeaterCharecteristic>
            {
                WeaterCharecteristic.Humidity,
            });

            var observer3 = new WeatherMonitor(
                "Температура, влажност и налягане",
                new List <WeaterCharecteristic>
            {
                WeaterCharecteristic.Humidity,
                WeaterCharecteristic.Temperature,
                WeaterCharecteristic.Pressure
            });

            observer1.Subscribe(provider);
            provider.WeatherConditions(new Weather(32.0, 0.05, 1.5));
            Console.WriteLine();

            observer1.Subscribe(provider);
            provider.WeatherConditions(new Weather(33.5, 0.04, 1.7));
            Console.WriteLine();

            observer2.Subscribe(provider);
            provider.WeatherConditions(new Weather(37.5, 0.07, 1.2));
            Console.WriteLine();
            observer1.Unsubscribe();
            observer2.Unsubscribe();

            observer3.Subscribe(provider);
            provider.WeatherConditions(new Weather(27.5, 0.7, 3.2));
        }
Exemplo n.º 2
0
 public void Subscribe(WeatherSupplier provider)
 {
     _cancellation = provider.Subscribe(this);
 }