设计模式 --- 使用监听驱动实现观察者模式
Posted jomini
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式 --- 使用监听驱动实现观察者模式相关的知识,希望对你有一定的参考价值。
发短信功能
@Service // spring托管 public class OrderService { @Autowired ApplicationContext applicationContext; /** * 电商 - 新订单 -- 不断维护(外包除外)--- 后面接手的人 才是接盘 */ public void saveOrder() { // TODO 主要职责:创建订单 -- 不符合:单一职责,开闭原则 // 1 ---创建订单--- TODO 此处省略100行代码 System.out.println("1、 订单创建成功"); // 源头 -- 事件产生之处。--- 原理表述: 产生一个事件,触发相关的监听器执行 OrderEvent orderEvent = new OrderEvent("参数"); applicationContext.publishEvent(orderEvent); } }
订单事件
public class OrderEvent extends ApplicationEvent { public OrderEvent(Object source) { super(source); } }
短信
// 订单事件的监听器 @Component // 交给spring托管 -- 创建对象并且保留在IOC容器 public class SmsListener implements ApplicationListener<OrderEvent> { @Override public void onApplicationEvent(OrderEvent event) { // 2 --- 发送短信 --- TODO 此处省略短信接口调用的N行代码 System.out.println("2、 短信发送成功"); } }
微信
// 订单事件的监听器 @Component // 交给spring托管 public class WxListener implements ApplicationListener<OrderEvent> { @Override public void onApplicationEvent(OrderEvent event) { // 3 --- 发送微信通知 ---- System.out.println("3. 发送微信消息"); } }
以上是关于设计模式 --- 使用监听驱动实现观察者模式的主要内容,如果未能解决你的问题,请参考以下文章