이번 포스팅에서는 음악 플레이어의 data관련 클래스들을 리팩토링할 예정이다.
최종설계를 바탕으로 TO-BE를 확인 후 실습 과정 확인
AS-IS | TO-BE |
---|---|
![]() | ![]() |
AS-IS | TO-BE | |
---|---|---|
비교 | ![]() | ![]() |
문제점 및 해결책 1 | 의존성 강함, 확장성 적음 | Interface를 통해 의존성 제거, 확장성 증가 |
문제점 및 해결책 2 | 변수, 메소드 명이 명확하지 않음 | Renaming을 통해 명확화 |
AS-IS | TO-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 사용 시, 적합하지 않은 값이 입력되어도 컴파일 에러 X | Enum class를 사용하므로 적합하지 않은 값이 입력되면 컴파일 에러 O |
지난 Java > Kotlin 변환 과정에서 테스트 코드의 중요성을 많이 느꼈다.
그래서 리팩토링을 진행하며 테스트 코드를 작성했다.