zoukankan      html  css  js  c++  java
  • 观察者设计模式二:回调函数

    在上篇博客中具体介绍了观察者设计模式在异步短信发送中的应用场景,但是,在具体的业务中短息发送使用那种方式则会令代码很不友好;

    这里我使用的是回调函数的方式来实现这个业务需求:

    在具体的业务场景中,我们不会特意去维护一个目标类,只是在目标类中会调用观察类的 update 方法时采用的是回调函数的方式进行调用:

    以下是具体的场景代码实现:

    1:维护一个观察者接口,在该接口中维护一个update的方法:

    public interface Observe {
    
    // 实时监控目标对象的状态
    public void update(int i);
    }

    2:维护一个目标对象:这里的目标对象就是发送短信的具体类:

    public class Message implements Subject{
    
    // 具体发送短信的方法
    
    public static void sendMess(Observe o1){
    
    //    TODO 请求发送短信接口 返回相应的状态
    int i=1;
    // 短信发送后调用相应的回调函数
    o1.update(i);
    
    }
    
    }

    3:在具体的业务实现类中采用回调函数的模式对短信发送的情况进行实时入库:

    这里的以预约单作为具体的业务实现类:

    public class Appointment{
    
    String appointmentId="1111";
    String phoneNum="2222";
    public void saveAppointment(){
    //    TODO 保存预约单成功
    System.out.println("保存预约单成功");
    //    发送短信
    Message.sendMess(new Observe(){
    
    @Override
    public void update(int i) {
    //    数据入库
    System.out.println("返回状态:"+i+"预约单id:"+appointmentId+"用户电话:"+phoneNum);
    }
    
    });
    
    
    }
  • 相关阅读:
    Java3D实例应用载入VRML模型
    Tomcat数据库连接池的配置方法总结
    WebGL学习笔记使用3D引擎threeJS实现星空粒子移动
    mybatis应用实例学习
    springmvc 实例应用
    springmvc定制伪REST风格及JSR303Bean校验整合
    SpringMVC中应用Ajax异步通讯
    Java3D实例应用载入3ds 模型
    Device Mutipath参数设置
    Nginx+FastCGI+Python
  • 原文地址:https://www.cnblogs.com/beppezhang/p/7486875.html
Copyright © 2011-2022 走看看