码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式(二) --- 使用监听驱动实现观察者模式

时间:2020-06-05 00:51:52      阅读:61      评论:0      收藏:0      [点我收藏+]

标签:电商   event   执行   one   slist   相关   div   参数   pre   

发短信功能

@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. 发送微信消息");
    }
}

  

 

 

 

 

 

 

 

 

 

 

 

 

  

设计模式(二) --- 使用监听驱动实现观察者模式

标签:电商   event   执行   one   slist   相关   div   参数   pre   

原文地址:https://www.cnblogs.com/Jomini/p/13047311.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!