import 'package:get/get.dart'; import 'package:get_storage/get_storage.dart'; import 'package:problem_check_system/data/providers/connectivity_provider.dart'; import 'package:problem_check_system/data/providers/dio_provider.dart'; import 'package:problem_check_system/data/repositories/auth_repository.dart'; import 'package:problem_check_system/modules/auth/controllers/auth_controller.dart'; class AuthBinding implements Bindings { @override void dependencies() { // 1. 注入数据提供者 (AuthProvider),它依赖于 Dio // 依赖注入通过构造函数完成,使代码更易于测试 final DioProvider dioProvider = Get.find(); final GetStorage storage = Get.find(); final ConnectivityProvider connectivityProvider = Get.find(); Get.lazyPut( () => AuthRepository( dioProvider: dioProvider, storage: storage, connectivityProvider: connectivityProvider, ), ); // 2. 注入控制器 (AuthController),它依赖于 AuthProvider // 控制器通过 Get.find() 获取已注入的依赖 Get.lazyPut( () => AuthController(authRepository: Get.find()), fenix: true, ); } }