다시 읽는 Effective Kotlin - Item33. 생성자 대신 팩토리 함수를 사용하라
·
KOTLIN
서론 필자는 그동안 앱을 개발하면서 팩토리 패턴을 굉장히 많이 사용해 왔습니다. 예컨대 다음같이 Hilt를 사용하지 않고 앱을 개발하던 시절 Retrofit -> DataSource -> Repository까지의 필요한 인스턴스들을 Repository Interface에서 팩토리 패턴을 사용함으로써 View에서 Data Layer 방향으로의 직접적인 의존성을 끊을 수 있었습니다.interface PlaceRepository { companion object{ fun create(): PlaceRepository{ return PlaceRepositoryImpl( PlaceDataSource( Retrofit..
Kotlin Value Class With Project Valhalla
·
KOTLIN
오늘 알아볼 주제는 Kotlin의 Value Class와 Vlalue Class가 탄생하게 된 JVM의 Project Valhalla 입니다. 우테코 프리코스의 로또 과제를 진행하면서 다음과 같이 상태 관리를 위한 data Class를 만들었습니다. 이 과정에서 도메인에 특화된 타입을 만들어 Wrapper로 분리할지 아니면 Primitive Type 타입 그대로 사용할지 많은 고민을 했습니다. 미션 제출 당시엔 아래 코드와 같은 형태로 제출했지만 이후 리팩토링 과정에서 Value Class라는 좋은 기능이 있다는 것을 알게 되어 소개해보겠습니다. 이번 글은 "이펙티브 코틀린"의 45장 '불필요한 객체 생성을 피하라'와 47장 '인라인 클래스의 사용을 고려하라'에 대한 내용을 참고하였습니다.data cla..