강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của minco
minco

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

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

Practice2C - Xây dựng nền tảng kiến trúc ứng dụng Android (Repository, ViewModel, Coroutine, Livedata)

BookSearchRepository 관련 질문

Viết

·

268

0

BookSearchRepository interface 부분과 BookSearchRepository 구현부를 구현한건 검색 결과를 받아오기위해서인거 같은데

설명이 간략해서 잘 이해사 안갑니다 ㅠㅠ

왜 interface를 생겅하고 구현하는지도... interface 는 한 기능을 여러 class 에서 메소드name 를 공통되게 쓰고싶을때 구현하는게 아닌가요 ㅠㅠ?

왜 1:1 로 사용하는지 궁급합니다.

 

kotlinandroidarchitecturejetpack

Câu trả lời 3

0

frozencoder님의 프로필 이미지
frozencoder
Người chia sẻ kiến thức

강의에서 제작한 앱은 규모가 작아 리포지토리를 한개만 사용하지만 만약 앱의 규모가 크다면 책을 찾는데 사용하는 BookSearchRepository 외에 FavoriteBookRepository를 사용할 수도 있을 것입니다. 그 경우 BookRepository라는 interface를 만들어서 양쪽의 Impl로 사용하게 되겠죠. 물론 테스트를 위해 TestBookSearchRepository와 TestFavoriteBookRepository를 만들어야 할 필요도 있을 것이구요.

0

minco님의 프로필 이미지
minco
Người đặt câu hỏi

답변 감사합니다. 냉동선생님!

리포지토리가 인터페이스에 정한 동작만 수행 할 수 있도록 제한하기 위함 이라고 하셨는데 이 말씀은 Impl(interface 가 구현된 클래스) interface 에서 정의하지 않은 내용을 추가하거나 할 수 없게 하려는 의도 라는 말씀이신가요?

만약 이 말이 맞다면 인터페이스와 임플먼트가 꼭 1:1 이어야 할 필요는 없다 라는 말이 이해가 잘 가지 않습니다 ㅠㅠ

이 부분은 테스트용 에만 해당하는 말씀이신가요?

 

0

frozencoder님의 프로필 이미지
frozencoder
Người chia sẻ kiến thức

인터페이스는 구현할 클래스의 내용을 미리 정해두도록 하는 기능을 갖고 있는데요, 리포지토리를 인터페이스를 통해 작성하도록 한 이유는 리포지토리가 인터페이스에 정한 동작만 수행 할 수 있도록 제한하기 위함입니다.

그리고 인터페이스와 임플먼트가 꼭 1:1 이어야 할 필요는 없습니다. Practice2C에서는 인터페이스와 임플먼트가 1:1이지만 나중에 Appendix. Jetpack Test를 보시면 테스트용 리포지터리를 만드는데에도 이 인터페이스를 이용하게 됩니다.

Hình ảnh hồ sơ của minco
minco

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

Đặt câu hỏi