SuperAPI AI 工具集

flutter-dependency-injection

编程与开发

查看项目

更新于 10-15 22:13

技能介绍

用途:在 Flutter 项目中配置基于 injectable 与 get_it 的服务定位器(依赖注入),适用于使用 get_it 或 injectable 进行依赖装配的场景。

主要能力与约定: 结构上建议将注入代码放在 core/injection/ 下,injection.dart 负责初始化与装配,modules/ 存放第三方依赖模块(如 Dio、Storage)。 实现流程:用 @injectable 注解类,避免手写注册调用;仓库、服务、数据源默认使用 @LazySingleton(按需初始化);BLoC 使用 @injectable(Factory)注册,以保证每个实例状态重置,禁止对 BLoC 使用 @Singleton();实现类始终以抽象接口注册(as: IService);第三方依赖(Dio、Hive、SharedPreferences)用 @module 注册外部实例;优先使用构造函数注入,通过必填构造参数由 injectable 自动解析。

反模式:不要在 UI 的 build() 中内联调用 GetIt,应通过构造函数注入;不要用 @Singleton 注册 BLoC;不要注入具体类,应注入抽象接口(如 IOrderRepository);生产代码中不要手动调用 getIt.register。

参考:模块配置与初始化模板见 references/REFERENCE.md;注册与测试 mock 替换示例见实现示例。相关主题:layer-based-clean-architecture、testing。

限制:资料未提供具体版本要求、安装命令、完整代码示例及平台兼容性说明,暂未提供。