62 lines
1.5 KiB
C#
62 lines
1.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Tutorial_5
|
|
{
|
|
class WeatherData : ISubject
|
|
{
|
|
List<IWeatherObserver> observers;
|
|
public void DeregisterObserver(IWeatherObserver observer)
|
|
{
|
|
if (observers.Contains(observer)) observers.Remove(observer);
|
|
else Console.Error.WriteLine("{0} does not exist in the observers list.", observer.ToString());
|
|
}
|
|
|
|
public void NotifyObservers()
|
|
{
|
|
double t = GetTemperature();
|
|
double h = GetHumidity();
|
|
double p = GetPressure();
|
|
|
|
foreach (var observer in observers)
|
|
{
|
|
observer.Update(t,h,p);
|
|
}
|
|
}
|
|
|
|
public void RegisterObserver(IWeatherObserver observer)
|
|
{
|
|
if (observers.Contains(observer)) Console.Error.WriteLine("{0} already exists in the observers list.", observer.ToString());
|
|
else observers.Add(observer);
|
|
}
|
|
|
|
public double GetTemperature()
|
|
{
|
|
return 0.0;
|
|
}
|
|
|
|
public double GetHumidity()
|
|
{
|
|
return 0.0;
|
|
}
|
|
|
|
public double GetPressure()
|
|
{
|
|
return 0.0;
|
|
}
|
|
|
|
void MeasurementChanged()
|
|
{
|
|
NotifyObservers();
|
|
}
|
|
|
|
public WeatherData()
|
|
{
|
|
observers = new List<IWeatherObserver>();
|
|
}
|
|
}
|
|
}
|