의존성 주입 단계
1) di_setup
final getIt = GetIt.instance;
void diSetup() {
getIt.registerSingleton<RegisterdFoodsRepository>(
RegisterdFoodsRepositoryImpl());
getIt.registerFactory<MyFoodDetailViewModel>(() => MyFoodDetailViewModel());
- 레퍼지토리를 사용하는 view model에 대해서만 의존성을 주입한다.
2) main 적용
void main() {
diSetup();
runApp(const MyApp());
}
- void main에 diSetup()을 추가한다.
3) view_model repository 생성자로 직접 사용
- view_model에서 사용하던 repositoryImpl을 제거하고 repository 생성자를 만들어 직접 사용하도록 바꿔준다.
- repository는 인터페이스로 그동안은 빈껍데기였지만 의존성 주입을 통해 이제 repository를 직접 사용할 수 있게 되었기 때문이다.
- 로직이 바뀔 때마다 Impl이 바뀌어야 하는데 이 영향을 받지 않게 하기 위해 repository에 직접 접근하도록 하는 것이다. = 의존성 주입!