Clean Architecture in Android

th.k·2022년 4월 23일
0

Android

목록 보기
5/8

개인적인 용도의 정리 글이며, 틀릴 수도 있습니다.



참조글들을 보며 구현하면서 이해한 구조

Domain 레이어

  • UseCase 클래스는 적절한 Repository 구현체를 주입받아 비즈니스 로직을 수행함.
  • Repository의 구현 클래스는 Data 레이어에 있지만, UseCase는 그저 Repository 인터페이스를 사용하기 때문에 Data 레이어에 대한 의존성이 없음.
  • Entity는 Domain 레이어 안에서 사용할 데이터 모델.

Data 레이어

  • Domain 레이어에 있는 Repository 인터페이스를 구현하는 클래스가 있음.
  • RepositoryImpl 클래스는 적절한 DataSource를 사용하여(주입받음) 기능을 구현한다.
  • DataSource는 데이터를 가져올 수 있는 곳의 개수만큼 존재할 수 있음.
  • DataModel은 Data 레이어 안에서 데이터베이스나 리모트에서 받는 Response에서 사용될 데이터 모델. Domain 레이어의 Entity와 헷갈릴 수 있지만 엄연히 다른 존재임.
  • Mapper는 DataModel과 Entity를 서로 치환? 시켜주는 존재. Domain 레이어에서 DataModel을 사용할 수 없고, Data 레이어에서 Entity를 그대로 사용할 수 없기 때문에 Mapper가 필요하다.

Presentation 레이어

  • ViewModel에서 UseCase들을 주입받아 사용한다. UseCase를 통해 데이터를 가져오거나 넘긴다.
  • Activity나 Fragment에서는 ViewModel을 주입받아 DataBinding 같은걸 사용해서 화면에 데이터를 보여준다.

참조

https://jungwoon.github.io/android/2021/04/12/Android-CleanArchitecture.html
https://youngest-programming.tistory.com/484

profile
고생끝에롹이온다

0개의 댓글