核心就是在一个有某种状态的对象中维护一个list,将需要获取这个状态改变的其他对象添加到这个list中。当状态改变时,遍历这个list,通知所有list中的对象。
可以自己维护一个list,也可以使用.net自带的Event机制。
class Subject
{
public event EventHandler<TempEventArgs> Update;
public void Notify(string temp)
{
Update(this, new TempEventArgs() { Temp = temp });
}
}
class TempEventArgs : EventArgs
{
public string Temp { get; set; }
}
abstract class Observer
{
protected string Name { get; set; }
}
class Employee1 : Observer
{
public Employee1(string name)
{
Name = name;
}
public void Fun(object s, TempEventArgs e)
{
Console.WriteLine(e.Temp);
}
}
class Employee2 : Observer
{
public Employee2(string name)
{
Name = name;
}
public void Fun2(object sender, TempEventArgs e)
{
Console.WriteLine(e.Temp);
}
}