1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| 一、概念 依赖注入(Dependency Injection, 简称 DI)是一种设计模式, 用于将对象所依赖的其他对象,通过外部方式传入,而不是在类内部自己创建,从而实现解耦、易测试、易维护
二、 在 Flutter 中如何实现依赖注入: 2.1、 手动注入(构造函数注入) 通过构造函数传入依赖对象:
class UserService { final ApiClient apiClient;
UserService(this.apiClient); }
2.2、 使用 Provider 包 通过 Provider 注册并提供依赖: void main() { runApp( Provider( create: (_) => ApiClient(), child: MyApp(), ), ); } // 在子组件中获取依赖 final api = Provider.of<ApiClient>(context);
2.3. 使用 get_it(Flutter 中最常用的 DI 工具) final getIt = GetIt.instance; void setup() { getIt.registerSingleton<ApiClient>(ApiClient()); } // 使用 final api = getIt<ApiClient>();
三、优点: -解耦:业务逻辑和依赖对象分离 -易测试:可以注入 mock 对象进行单元测试 -灵活扩展:切换依赖无需修改类本身
四、总结: 依赖注入是一种通过“外部提供依赖”来减少耦合的模式, Flutter 中常用 Provider 或 get_it 实现它,在中大型项目中尤为重要。
|