static void Main(string[] args) { ISubject weatherStation = new WeatherStation(); weatherStation.AddObserver(new TemperatureDisplay()); weatherStation.AddObserver(new HumidityDisplay()); weatherStation.AddObserver(new PressureDisplay()); while (true) { string line = Console.ReadLine(); string[] values = line?.Split(' '); if (values?.Length == 3) { WeatherParameters weatherParameters = new WeatherParameters { Temperature = Double.Parse(values[0]), Humidity = Double.Parse(values[1]), Pressure = Double.Parse(values[2]) }; weatherStation.NotifyObservers(weatherParameters); } } }
private static void RunWeatherDemo() { WeatherSubject subject = new WeatherStation(16); WeatherObserver observer = new HomeThermostat(); WeatherObserver observer2 = new HomeThermostat(); WeatherObserver auto = new Car(130, 45); subject.AddObserver(observer); subject.AddObserver(observer2); subject.AddObserver(auto); (subject as WeatherStation).SetTemperature(10); Console.WriteLine(auto.ToString()); (subject as WeatherStation).SetTemperature(4); Console.WriteLine(auto.ToString()); (subject as WeatherStation).SetTemperature(30); Console.WriteLine(auto.ToString()); }