观察者模式
Spring启动之后会执行内部一系列操作。我们也会经常定义Spring在启动之后,执行一些特定的业务代码。为什么不需要改动Spring源码就能实习拓展?
基于spring的事件通知机制来实现。
什么是观察者模式
定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都得到通知并被自动更新。
又称:发布/订阅机制,消息通知机制,事件监听,事件驱动编程。
操作步骤
1.Service中发出一个业务事件
applicationContext.publishEvent(业务事件)
2.创建业务事件OrderEvent.java, extends applicationEvent
创建继承 ApplicationEvent的业务事件OrderEvent
3.创建业务事件监听器 implement SmartApplicationListener
onApplicationEvent 方法----当发生事件时执行的逻辑
getOrder 方法----执行顺序
supportsEventType方法----return eventType = OrderEvent.class
模板模式
定义一个算法 的骨架,将骨架中的特定步骤延迟到子类中(即:特定步骤由子类实现)
特点:子类不必改变算法的结构即可重新定义该算法的某些特定步骤。
比如:各种xxxxTemplate
策略模式
定义了一系列算法,并将每个算法封装起来,并且使他们可以相互替换,让算法独立于业务。
算法:程序执行的逻辑和顺序。
封装:函数/方法、类、接口、抽象类
网友评论