.net core 3.1 23种设计模式----观察者模式(行为设计模式)
定义
当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知依赖它的对象。
代码案例
场景:回家开门,灯自动亮,扫地机开始工作。
public interface IObserver
{
void Action();
}
}
新建一个门Door 这里的门就是订阅
public class Door
{
private List<IObserver> ObServerList = new List<IObserver>();
public void AddObserver(IObserver observer)
{
ObServerList.Add(observer);
}
public void DoorObServer()
{
Console.WriteLine("开门回家!");
foreach (var observer in ObServerList)
{
observer.Action();
}
}
}
在建立一个扫地机
public class SweepingMachine:IObserver
{
public void Action()
{
Console.WriteLine("机器人开始工作!!");
}
}
建立一个灯
public class lamp : IObserver
{
public void Action()
{
Console.WriteLine("灯亮了");
}
}
最后执行
Door door = new Door();
door.AddObserver(new lamp());
door.AddObserver(new SweepingMachine());
door.DoorObServer();//只要执行这个开门动作,后面的操作就跟着执行
??回家!
?亮了
机器人?始工作!!
好处:依赖降低,单依职责,互不影响