기록

    Android - UseCase 추상화

    Android - UseCase 추상화

    사이드 프로젝트를 진행하면서 Domain Layer의 비지니스 로직을 수행하는 각 UseCase의 리팩토링 필요성을 느끼게 되었다. 위 사진에 보이는 UseCase들은 API 응답을 받아 데이터 스트림을 방출하는 역할들을 하는데 개발을 하다보니 invoke 메서드의 코드들이 전부 중복되는 문제가 있었다. 아래 두 코드에서 확인할 수 있듯이 단순히 결과를 받아와 데이터 스트림을 방출하는 역할만 수행한다. 문제가 모든 UseCase 코드들이 같은 구조로 되어 있다. class GetToys @Inject constructor( private val toyLibraryRepo: ToyLibraryRepository ) { operator fun invoke(): Flow = channelFlow { toyLi..