도입

이번 포스팅에서는 음악 플레이어의 data관련 클래스들을 리팩토링할 예정이다.
최종설계를 바탕으로 TO-BE를 확인 후 실습 과정 확인


결과

AS-ISTO-BE
  1. Video model 확장 가능성 생각
  2. MediaRemoteDataSource 확장 생각

실습

Step1. Package 재구성 및 Rename

AS-ISTO-BE
비교
문제점 및 해결책 1의존성 강함, 확장성 적음Interface를 통해 의존성 제거, 확장성 증가
문제점 및 해결책 2변수, 메소드 명이 명확하지 않음Renaming을 통해 명확화

Step2. const -> enum으로 변경

AS-ISTO-BE
비교object Const {enum class AudioSortOrder {
const val SORT_AUDIO_BY_ARTIST = "BY_ARTIST"SORT_AUDIO_BY_ARTIST,
const val SORT_AUDIO_BY_TITLE = "BY_TITLE"SORT_AUDIO_BY_TITLE,
const val SORT_AUDIO_BY_GENRE = "BY_GENRE"SORT_AUDIO_BY_GENRE,
const val SORT_AUDIO_BY_ALBUM = "BY_ALBUM"SORT_AUDIO_BY_ALBUM
}}
문제점 및 해결책Const value 사용 시, 적합하지 않은 값이 입력되어도 컴파일 에러 XEnum class를 사용하므로 적합하지 않은 값이 입력되면 컴파일 에러 O

Step3. 테스트 코드 작성

지난 Java > Kotlin 변환 과정에서 테스트 코드의 중요성을 많이 느꼈다.
그래서 리팩토링을 진행하며 테스트 코드를 작성했다.

profile
행복을 고민하는 블로거

0개의 댓글

관련 채용 정보