MST

星途 面试题库

面试题:Java接口在复杂业务场景回调机制中的应用

假设你正在开发一个电商系统,在订单支付成功后,需要触发一系列后续操作,如更新库存、发送通知等。请设计一个基于Java接口的回调机制来处理这种业务场景,说明各个类和接口的职责,并给出核心代码片段。
20.8万 热度难度
编程语言Java

知识考点

AI 面试

面试题答案

一键面试
  1. 定义回调接口
    • 该接口定义了订单支付成功后要执行的操作。
    public interface PaymentCallback {
        void handlePaymentSuccess();
    }
    
  2. 订单支付类
    • 负责处理订单支付逻辑,并在支付成功时调用回调接口的方法。
    public class OrderPayment {
        private PaymentCallback callback;
    
        public OrderPayment(PaymentCallback callback) {
            this.callback = callback;
        }
    
        public void payOrder() {
            // 模拟支付逻辑,这里简单认为支付成功
            boolean isPaymentSuccess = true;
            if (isPaymentSuccess) {
                System.out.println("订单支付成功");
                if (callback != null) {
                    callback.handlePaymentSuccess();
                }
            } else {
                System.out.println("订单支付失败");
            }
        }
    }
    
  3. 具体回调处理类
    • 实现回调接口,完成实际的后续操作,如更新库存、发送通知等。
    public class PaymentSuccessHandler implements PaymentCallback {
        @Override
        public void handlePaymentSuccess() {
            updateInventory();
            sendNotification();
        }
    
        private void updateInventory() {
            System.out.println("更新库存操作");
        }
    
        private void sendNotification() {
            System.out.println("发送通知操作");
        }
    }
    
  4. 测试代码
    public class Main {
        public static void main(String[] args) {
            PaymentCallback callback = new PaymentSuccessHandler();
            OrderPayment orderPayment = new OrderPayment(callback);
            orderPayment.payOrder();
        }
    }
    

在上述代码中:

  • PaymentCallback 接口定义了支付成功后的回调方法。
  • OrderPayment 类负责支付逻辑,并在支付成功时调用回调接口的方法。
  • PaymentSuccessHandler 类实现了回调接口,执行具体的后续业务操作。
  • Main 类用于测试整个流程,创建回调对象和订单支付对象,并执行支付操作。