ViewModel이 RepositoryImpl이 아니라 Repository를 생성자로 가지고 있는 것에 대한 질문
804
작성한 질문수 29
제목 그대로 ViewModel이 RepositoryImpl(구현체)이 아니라 Repository(인터페이스)를 생성자로 가지고 있는 것은 SOLID 원칙 중 어느 원칙을 준수하기 위함인지가 궁금합니다.
답변 3
0
이렇게 구현하면 리포지토리 구현체를 다른 것으로 갈아끼우기가 편해지니까 굳이 따지자면 개방폐쇄원칙을 지킨 것이 되겠네요. 이렇게 작은 앱에서는 딱히 그래야 할 필요는 없지만요 :)
0
오 네 Repository와 RepositoryImpl을 연결하는 과정에서 Hilt의 동작방식은 알겠습니다!
그런데 제가 궁금한 것은 Hilt에 대한 부분이 아니라 ViweModel에서 생성자로 RepositoryImpl(구현체 클래스) Repository(인터페이스)를 가지는 것이 SOLID에서 무슨 원칙을 준수하기 위함인지가 궁금합니다! :)
0
di 패키지의 RepositoryModule을 보시면 힐트가 주입할 리포지토리 인스턴스는 다음과 같이 정의됩니다.
@Singleton
@Binds
abstract fun bindBookSearchRepository(
bookSearchRepositoryImpl: BookSearchRepositoryImpl,
): BookSearchRepository인터페이스 형식을 주입하기 위해 @Binds를 사용하긴 하지만, 실제로는 인터페이스의 구현체인 BookSearchRepositoryImpl이 주입되는 것입니다. Hilt 동작방식이 좀 헷갈리게 되어있죠.
Coroutine, Flow 질문
0
384
1
Transformations import 안됨
0
575
1
moshi관련 질문입니다.
0
546
2
searchBooks() 에서 북 검색 입력을 너무 빨리 할 경우 마지막 글자로 검색이 안돼요.
0
359
1
안드로이드에서 아키텍처 패턴
0
408
1
RecyclerView.Adapter vs ListAdpater
0
463
1
Flows 와 Coroutine
1
558
1
[BookSearchAdapter] onBindViewHolder의 currentList[position] 질문
0
360
1
코루틴 메모리 관련해서 질문드립니다!
0
444
1
Java Bill Pugh Solution 에서 INSTANCE
0
461
1
nested json에서 특정 부분만 파싱하는법
0
491
1
Fragment에서의 viewBinding
0
517
3
toolbar 질문드립니다.
0
407
2
EditText 에서 delay 주셔서 처리하셨는데 flow 의 debounce() 하고 같은건가요?
2
564
1
코루틴 관련 질문
0
541
1
오류
1
491
2
강사님! 직렬화 라이브러리를 Moshi, kotlin serialization 두개를 사용하시던데 이유가 있으신가요?
1
742
1
EditText 는 kill 해도 값이 잘 저장되어있던데 혹시 제가 잘못테스트했을까요?
1
346
1
서버도 페이징 기능이 되는데 Paging 라이브러리가 필요할까요?
1
523
1
GSON 이 아닌 Moshi 를 사용하시는 이유가 있을까요?
1
1265
1
EditText 는 액티비티가 재생성되어도 값이 남아있던데 이유가 궁금해요
1
495
1
ViewModel 생성시 왜 초기값을 받지 않도록 했을까요?
1
436
1
Room DB에 id 항목 추가
0
249
1
안녕하세요. 용어에 대해 질문이 있어 글 남깁니다.
0
402
2





