觀察者模式,就是某件事發生之後,會起連鎖反應,發生一系列的事
通知接口
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();