[kotlin] 확장 프로퍼티와 위임 프로퍼티의 사용법
확장 프로퍼티 (Extension Properties)
확장 프로퍼티는 기존 클래스에 새로운 프로퍼티를 추가하는데 사용됩니다. 이는 기존 클래스의 소스 코드를 변경하지 않고도 해당 클래스의 인스턴스에 새로운 속성을 추가할 수 있게 해줍니다.
확장 프로퍼티는 기본적으로 get
함수를 가지고 있어야 하며, 필요에 따라 set
함수를 추가할 수 있습니다.
다음은 String
클래스에 lengthIsEven
확장 프로퍼티를 추가하는 예시입니다.
val String.lengthIsEven: Boolean
get() = this.length % 2 == 0
이제 문자열 인스턴스에 lengthIsEven
프로퍼티를 사용할 수 있게 되었습니다.
위임 프로퍼티 (Delegated Properties)
위임 프로퍼티는 프로퍼티 값을 다른 객체에 위임하는 기법을 말합니다. 기존의 getter와 setter 로직을 다른 객체에게 위임함으로써 코드의 재사용성과 간결성을 높일 수 있습니다.
Kotlin 표준 라이브러리에는 이미 Lazy
, Observable
및 Vetoable
와 같은 내장된 위임 프로퍼티가 제공됩니다.
예를 들어, lazy
함수를 사용하여 지연 초기화된 프로퍼티를 정의할 수 있습니다.
val lazyValue: String by lazy {
println("computed!")
"Hello"
}
위임 프로퍼티를 만들고자 하는 경우 by
키워드 뒤에 위임할 로직을 정의할 수 있습니다.
확장 프로퍼티와 위임 프로퍼티 모두 강력한 기능으로, Kotlin에서 더욱 다양하고 유연한 코드를 작성할 수 있도록 해 줍니다.
참고 문헌: Kotlin 공식 문서