观察者模式,就是某件事发生之后,会起连锁反应,发生一系列的事
通知接口
public interface INotify
{
void Notify();
}
观察者类
public class Teacher:INotify
{
public void Moshou()
{
Console.WriteLine("老师来没收了手机");
}
public void Notify()
{
this.Moshou();
}
}
public class Registrar:INotify
{
public void Jiaojiazhang()
{
Console.WriteLine("教务主任叫家长");
}
public void Notify()
{
this.Jiaojiazhang();
}
}
public class Parent:INotify
{
public void Pangzou()
{
Console.WriteLine("家长带回家一顿胖揍");
}
public void Notify()
{
this.Pangzou();
}
}
触发事件类
public class Student
{
public void GetPhone()
{
Console.WriteLine("学生上课拿出手机来玩");
if (inotifyList != null && inotifyList.Count > 0)
{
foreach (INotify item in inotifyList)
{
item.Notify();
}
}
}
public List<INotify> inotifyList = new List<INotify>();
public void AddInotify(INotify inotify)
{
inotifyList.Add(inotify);
}
}
调用
Student stu = new Student();
stu.AddInotify(new Teacher());
stu.AddInotify(new Registrar());
stu.AddInotify(new Parent());
stu.GetPhone();