• 观察者设计模式二:回调函数


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

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

    在具体的业务场景中,我们不会特意去维护一个目标类,只是在目标类中会调用观察类的 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);
    }
    
    });
    
    
    }
  • 相关阅读:
    try catch finally
    类的小练习
    易混淆概念总结
    C#中struct和class的区别详解
    Doing Homework again
    悼念512汶川大地震遇难同胞——老人是真饿了
    Repair the Wall
    Saving HDU
    JAVA-JSP隐式对象
    JAVA-JSP动作
  • 原文地址:https://www.cnblogs.com/beppezhang/p/7486875.html
Copyright © 2020-2023  润新知