카테고리 없음
Android] Repository Pattern, UseCase
유녕2
2023. 8. 3. 10:45
Repository Pattern
: Data의 출처에 관계 없이 동일한 인터페이스로 데이터를 접근할 수 있도록 하는 패턴이다. DataSource를 캡슐화 시킨다.
- Data Layer에 대한 의존성을 줄일 수 있다. 즉, Data Layer와 Presentation Layer 간의 Coupling이 줄어든다.
- Presentation Layer에서 Data Layer에 직접 접근하지 않으므로, 새로운 Data의 추가가 쉽다.
- Presentation Layer에서는 Repository에 데이터 요청만 하면 되므로, 일관된 인터페이스로 데이터를 요청할 수 있다.
- Unit Test를 통한 검증하기가 쉬워진다.
별도의 Repository 클래스를 사용한다.
UseCase
: 서비스를 사용하고 있는 사용자(User)가 해당 서비스를 통해 하고자 하는 것을 의미한다.
사용하는 이유 ?
1. ViewModel이 어떤것을 하고자 하는지 직관적으로 파악할 수 있다.
2. 의존성을 줄일 수 있다.
UseCase의 사용법을 정리하자면
- Domain Layer
- Repository : interface. 구현부는 Data Layer.
- Use case : Repository를 사용.
- Data Layer
- RepositoryImpl : Domain Laye의 Repository 구현부.
- CRUD(DataSource)를 사용하여 실제 데이터를 가져온다.
- Presentation Layer
- ViewModel : UseCase를 사용.
1. ViewModel에서 UseCase 호출
2. UseCase에서 RepositoryImpl 호출
3. RepositoryImpl에서 데이터를 Return
4. UseCase 에서 return 받은 데이터를 ViewModel로 던짐
5. ViewModel에서 Return 받은 데이터를 사용.
의 흐름으로 UseCase를 사용하게 된다.