观察者模式(Observer),当一个对象的状态发生改变时,依赖他的对象会全部收到通知,并自动更新。
理解:一个事件发生后,要执行一连串更新操作.传统的编程方式,就是在事件的代码之后直接加入处理逻辑,当更新得逻辑增多之后,代码会变得难以维护.这种方式是耦合的,侵入式的,增加新的逻辑需要改变事件主题的代码
场景:比如用户注册后需要增加一个邮件推送的功能,过几天加送优惠券的功能,这时将代码都写在登录里就非常的偶尔的,或者比如要根据用户不同的角色给出不同的处理方式(势利眼的观察者看人下菜)
,这些都可以使用观察者模式(如thinkphp6的事件)。
观察者就是定义各种功能的对象,如给第一次登录的用户发红包,给用户最新的10条文章推送,给非vip用户推送10条需要注册才能打开的视频诱导用户开通vip,
一个规则就是一个观察者,增加新规则就增加新观察者
,被观察者对象要实现的就是 将添加(注册)的观察者对象存储起来并逐个通知执行观察者各自的功能