다시 읽는 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 입니다. 이번 글은 "이펙티브 코틀린"의 45장 '불필요한 객체 생성을 피하라'와 47장 '인라인 클래스의 사용을 고려하라'에 대한 내용을 참고하였습니다.Wrapper Class를 사용하는 이유다음과 같이 위도 경도를 전달받아 특정 로직을 수행하는 함수가 있다고 가정합시다. 함수의 인자로 위도 경도를 전달하는 과정에서 사용자의 실수로 위도와 경도를 반대로 전달하는 실수를 저지를 수 있습니다. 이는 의도와는 다른 잘못된 결과를 반환하지만 컴파일러는 이에 대한 오류를 검출할 수 없습니다.fun calculateDistance(latitude: Double longitude:..