static void Main(string[] args) { CurrentConditionsDisplay display_1, display_2; // Create Publisher: WeatherData weatherData = new WeatherData(); // Create and register first observer: display_1 = new CurrentConditionsDisplay("First text display"); display_1.Subscribe(weatherData); // Create and register first observer: display_2 = new CurrentConditionsDisplay("Second text display"); display_2.Subscribe(weatherData); // Simulate availability of new measurements: weatherData.SetMeasurement(new Measurement(15.0f, 44.2f, 1020.0f)); weatherData.SetMeasurement(new Measurement(16.5f, 48.9f, 1015.0f)); weatherData.SetMeasurement(new Measurement(16.2f, 47.3f, 1025.0f)); // Remove first observer from observable's notification list: display_1.Unsubscribe(); // Simulate availability of new measurements again: weatherData.SetMeasurement(new Measurement(18.0f, 50.0f, 980.0f)); // Keap console open: ReadLine(); } // Main
static void Main(string[] args) { var weatherData = new WeatherData(); var currentConditionsDisplay1 = new CurrentConditionsDisplay("CurrentConditionsDisplay 1"); var currentConditionsDisplay2 = new CurrentConditionsDisplay("CurrentConditionsDisplay 2"); currentConditionsDisplay1.Subscribe(weatherData); currentConditionsDisplay2.Subscribe(weatherData); weatherData.UpdateMeasurements(new WeatherInformation() { Temperature = 80, Humidity = 30, Pressure = 1024 }); currentConditionsDisplay1.Unsuscribe(); weatherData.UpdateMeasurements(new WeatherInformation() { Temperature = 80, Humidity = 30, Pressure = 1024 }); weatherData.EndTransmision(); Console.Read(); }
public static void Main(string[] args) { WeatherMonitor monitor = new WeatherMonitor(); ForecastDisplay forecast = new ForecastDisplay(); CurrentConditionsDisplay currentConditions = new CurrentConditionsDisplay(); StatisticsDisplay statistics = new StatisticsDisplay(); HeatIndexDisplay heatIndex = new HeatIndexDisplay(); monitor.SetMeasurments(new WeatherData(80, 65, 30.4f)); forecast.Subscribe(monitor); currentConditions.Subscribe(monitor); statistics.Subscribe(monitor); heatIndex.Subscribe(monitor); monitor.SetMeasurments(new WeatherData(82, 70, 29.2f)); statistics.Unsubscribe(); monitor.SetMeasurments(new WeatherData(78, 90, 29.2f)); monitor.SetMeasurments(null); //weatherData.SetMeasurments(82, 70, 29.2f); //weatherData.SetMeasurments(78, 90, 29.2f); Console.ReadLine(); }