inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Hướng dẫn nhập môn Modern Android Development dễ hiểu của Frozen Coder

Dependency Injection Cơ bản

ViewModel이 RepositoryImpl이 아니라 Repository를 생성자로 가지고 있는 것에 대한 질문

813

jminie

29 câu hỏi đã được viết

0

제목 그대로 ViewModel이 RepositoryImpl(구현체)이 아니라 Repository(인터페이스)를 생성자로 가지고 있는 것은 SOLID 원칙 중 어느 원칙을 준수하기 위함인지가 궁금합니다.

jetpack architecture kotlin android

Câu trả lời 3

0

frozencoder

이렇게 구현하면 리포지토리 구현체를 다른 것으로 갈아끼우기가 편해지니까 굳이 따지자면 개방폐쇄원칙을 지킨 것이 되겠네요. 이렇게 작은 앱에서는 딱히 그래야 할 필요는 없지만요 :)

0

jminie

오 네 Repository와 RepositoryImpl을 연결하는 과정에서 Hilt의 동작방식은 알겠습니다!

그런데 제가 궁금한 것은 Hilt에 대한 부분이 아니라 ViweModel에서 생성자로 RepositoryImpl(구현체 클래스) Repository(인터페이스)를 가지는 것이 SOLID에서 무슨 원칙을 준수하기 위함인지가 궁금합니다! :)

0

frozencoder

di 패키지의 RepositoryModule을 보시면 힐트가 주입할 리포지토리 인스턴스는 다음과 같이 정의됩니다.

    @Singleton
    @Binds
    abstract fun bindBookSearchRepository(
        bookSearchRepositoryImpl: BookSearchRepositoryImpl,
    ): BookSearchRepository

인터페이스 형식을 주입하기 위해 @Binds를 사용하긴 하지만, 실제로는 인터페이스의 구현체인 BookSearchRepositoryImpl이 주입되는 것입니다. Hilt 동작방식이 좀 헷갈리게 되어있죠.

Coroutine, Flow 질문

0

401

1

Transformations import 안됨

0

588

1

moshi관련 질문입니다.

0

565

2

searchBooks() 에서 북 검색 입력을 너무 빨리 할 경우 마지막 글자로 검색이 안돼요.

0

375

1

안드로이드에서 아키텍처 패턴

0

423

1

RecyclerView.Adapter vs ListAdpater

0

473

1

Flows 와 Coroutine

1

572

1

[BookSearchAdapter] onBindViewHolder의 currentList[position] 질문

0

370

1

코루틴 메모리 관련해서 질문드립니다!

0

455

1

Java Bill Pugh Solution 에서 INSTANCE

0

469

1

nested json에서 특정 부분만 파싱하는법

0

495

1

Fragment에서의 viewBinding

0

524

3

toolbar 질문드립니다.

0

417

2

EditText 에서 delay 주셔서 처리하셨는데 flow 의 debounce() 하고 같은건가요?

2

568

1

코루틴 관련 질문

0

547

1

오류

1

494

2

강사님! 직렬화 라이브러리를 Moshi, kotlin serialization 두개를 사용하시던데 이유가 있으신가요?

1

749

1

EditText 는 kill 해도 값이 잘 저장되어있던데 혹시 제가 잘못테스트했을까요?

1

354

1

서버도 페이징 기능이 되는데 Paging 라이브러리가 필요할까요?

1

530

1

GSON 이 아닌 Moshi 를 사용하시는 이유가 있을까요?

1

1271

1

EditText 는 액티비티가 재생성되어도 값이 남아있던데 이유가 궁금해요

1

498

1

ViewModel 생성시 왜 초기값을 받지 않도록 했을까요?

1

438

1

Room DB에 id 항목 추가

0

254

1

안녕하세요. 용어에 대해 질문이 있어 글 남깁니다.

0

408

2