public class ObserverParam
{
public string id;
public object data;
public object isWho;
}
public class Observable
{
private CSLList<Observer> observers = new CSLList<Observer>();
public void addObserver(Observer aObserver)
{
if (aObserver == null)
{
return;
}
observers.Add(aObserver);
}
public void removeObserver(Observer aObserver)
{
if (observers == null)
{
return;
}
observers.Remove(aObserver);
}
public void notifyObservers(string id, object data)
{
if (observers == null)
{
return;
}
var param = new ObserverParam();
param.id = id;
param.data = data;
param.isWho = this;
for (int i=0; i<observers.Count; i++)
{
observers[i].updateSelf(param);
}
}
}
public interface Observer
{
void updateSelf(ObserverParam obj);
}