因为长期做后端开发,Spring提供的IoC功能确实用的很多。到了Flutter中各种依赖项目的管理也很麻烦,也影响单元测试的编写。
所以在Flutter还是希望延续平时的习惯,使用IoC去控制依赖等关系。但是Flutter中有一些特殊的情况,比如Flutter禁用了dart:mirrors,反射的使用上有一些问题。对比了几个框架,最开始考虑的是Google下面的inject.dart,但是文档这块比较缺,还有就是注解+代码生成的方式强大,但是不是很喜欢,也用不了这么强的功能。由于名字的原因也看了下ioc库(https://pub.dev/packages/ioc),对于API的语法不是很喜欢。最后选择使用GetIt。
使用上比较简单,引用依赖
dependencies:
get_it: ^3.1.0
代码中专门配置一个方法用于管理所有依赖配置
class IocConfiguration {
configDependencies(
{AnalysisService analysisService}) {
var loader = GetIt.I;
loader
.registerLazySingleton<LoggingService((() =SimpleLoggingService()));
if (analysisService != null) {
loader.registerLazySingleton<AnalysisService((() =analysisService));
} else {
loader.registerLazySingleton<AnalysisService(
(() …









