1、什么是观察者模式
事件的触发和反应是一种观察者模式,主要由两部分组成:
被观察者:相当于事件发布者(定义事件,触发事件),其中有一些属性来被其它对象所监视。
观察者:相当于事件的订阅者(事件对应具体方法实现),它会观察被监视对象的某些属性,当这些属性发生变化时,会触发观察者做出对应的反应。观察者一般可以有多个。
被观察对象只管触发事件,而不管是否有人订阅了该事件。
被观察者的状态发生了改变之后需要通知观察者做出相应的动作,比如在游戏中当我们点击了一个开始按钮,就需要加载音乐、场景等,这里的按钮就是被观察者,场景和音乐管理器就是观察者。
例题1:猫大叫,老鼠开始逃跑,主人醒来,宝宝也醒来了并且哭了起来
思路:这题猫是被观察者,老鼠、主人、宝宝都是观察者
我们需要在猫类里面定义好事件,其他类完成事件对应具体方法实现
namespace ConsoleApp1
{
public delegate void DEL();
internal class Program
{
static void Main(string[] args)
{
Cat cat = new Cat();
Mouse mouse = new Mouse();
People people = new People();
Baby baby = new Baby();
cat.del +=