Flutter DI 의존성 주입 (get_it)

Angela Jeong·2024년 2월 13일

Flutter 아키텍처 

목록 보기
3/3

의존성 주입 단계

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에 직접 접근하도록 하는 것이다. = 의존성 주입!

0개의 댓글