定义
观察者模式又称发布订阅模式;多个业务方关注同一件事情,且互相没有依赖关系。
优点:观察者模式动态扩展,开发效率高,服务间解耦合
缺点:串行执行,如果一个观察者执行效率低,会影响整个任务执行,可以改成异步的方式。
开篇一张图
场景
家庭场景:小明是个程序员
小明:“我回家了”
小明的老婆:“老公 我去帮你把饭热好”
小明的儿子:“爸爸 给我讲个故事”
小明的智能音箱:“您好主人,已经打开热水器”
小明的爸爸:“…”
业务场景:积分到期事件
业务方:“积分失效”
用户方:“提醒失效”
优惠权益:“兑换权益失效”
…
代码实现
被观察者行为
public interface Subject {
void notify(String message);
}
定义观察者注解
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface