oxFaceAndroid
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

4.7 KiB

网络请求模块重构说明

概述

原先在 OXFaceOnlineActivity.java 中的网络请求代码过于冗杂,现已重构为两个独立的管理类:

  1. OrderVerificationManager - 负责执行各种类型的订单验证网络请求
  2. OrderVerificationResultHandler - 负责处理验证结果,包括成功、失败和异常情况

重构后的架构

1. OrderVerificationManager(订单验证管理器)

功能:

  • 封装所有订单验证相关的网络请求逻辑
  • 支持4种验证类型:验证码验证、人脸验证、扫码验证、扫码器验证
  • 统一的参数校验和错误处理

主要方法:

// 执行验证
void performVerification(int verificationType, String verifyCode, String decryptText)

// 验证类型常量
TYPE_VERIFICATION_CODE = 1  // 验证码验证
TYPE_FACE_VERIFICATION = 2  // 人脸验证
TYPE_SCAN_VERIFICATION = 3  // 扫码验证
TYPE_SCANNER_VERIFICATION = 4  // 扫码器验证

2. OrderVerificationResultHandler(订单验证结果处理器)

功能:

  • 处理不同验证类型的成功结果
  • 统一的错误处理和异常处理
  • 页面跳转逻辑封装

主要方法:

// 处理验证成功
void handleVerificationSuccess(CheckOrderResult data, int verificationType)

// 处理验证失败
void handleVerificationError(int errorCode, String errorMessage, int verificationType)

// 处理验证异常
void handleVerificationException(Throwable throwable, int verificationType)

使用方式

在 Activity 中的使用

public class OXFaceOnlineActivity extends BaseActivity {
    
    private OrderVerificationManager orderVerificationManager;
    private OrderVerificationResultHandler orderVerificationResultHandler;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // ... 其他初始化代码 ...
        
        // 初始化网络请求管理器
        initNetworkManagers();
    }
    
    /**
     * 初始化网络请求管理器
     */
    private void initNetworkManagers() {
        // 初始化验证管理器
        orderVerificationManager = new OrderVerificationManager(this, 
            new OrderVerificationManager.OrderVerificationListener() {
                // 实现回调接口
            });
        
        // 初始化结果处理器
        orderVerificationResultHandler = new OrderVerificationResultHandler(this, 
            new OrderVerificationResultHandler.OrderVerificationResultListener() {
                // 实现回调接口
            });
    }
    
    /**
     * 执行订单验证(简化后的方法)
     */
    private void getCheckOrder() {
        // 使用新的网络请求管理器执行验证
        orderVerificationManager.performVerification(modeType, verifyCode, null);
    }
}

重构优势

1. 代码组织更清晰

  • 分离关注点:网络请求逻辑与UI逻辑完全分离
  • 模块化设计:每个类都有明确的职责
  • 易于维护:修改网络请求逻辑不影响UI代码

2. 复用性更强

  • 独立封装:网络请求管理器可以在其他Activity中复用
  • 接口设计:通过监听器接口实现松耦合
  • 配置灵活:可以轻松适配不同的UI需求

3. 错误处理更统一

  • 集中处理:所有网络请求的错误处理逻辑集中在一个地方
  • 类型安全:使用常量定义验证类型,避免魔法数字
  • 异常管理:统一的异常处理机制

4. 测试更容易

  • 单一职责:每个类的功能单一,便于单元测试
  • 依赖注入:通过接口注入依赖,便于Mock测试
  • 逻辑清晰:网络请求逻辑独立,便于测试覆盖

文件说明

新增文件:

  1. OrderVerificationManager.java - 订单验证管理器
  2. OrderVerificationResultHandler.java - 订单验证结果处理器
  3. 网络请求模块重构说明.md - 本文档

修改文件:

  1. OXFaceOnlineActivity.java - 简化网络请求相关代码,使用新的封装类

删除的方法:

  • handleVerificationCodeCheck() - 验证码验证处理
  • handleFaceCheck() - 人脸验证处理
  • handleScanCheck() - 扫码验证处理
  • handleScannerCheck() - 扫码器验证处理
  • handleCheckOrderSuccess() - 成功结果处理
  • handleCheckOrderError() - 错误结果处理

这些方法的功能现在都由新的封装类提供,代码更加模块化和可维护。

后续优化建议

  1. 添加缓存机制:对验证结果进行缓存,提高性能
  2. 添加重试机制:网络失败时自动重试
  3. 添加请求队列:管理并发请求
  4. 添加配置文件:将网络请求相关配置外部化