Skip to content

Latest commit

 

History

History
34 lines (22 loc) · 1.55 KB

아이템 21_일반적인_프로퍼티_패턴은_프로퍼티_위임으로_만들어라.md

File metadata and controls

34 lines (22 loc) · 1.55 KB

아이템 21: 일반적인 프로퍼티 패턴은 프로퍼티 위임으로 만들어라

프로퍼티 위임을 사용하면 일반적인 프로퍼티의 행위를 추출해서 재 사용할수 있습니다. 대표적인 예로 지연 프로퍼 티가 있습니다. lazy 프로퍼티는 이후에 처음 사용하는 요청이 들어올 때 초기화되는 프로퍼티를 의미합니다. 코틀린은 프로퍼티 위임을 사용해서 간단하고 type-safe하게 구현할 수 있습니다.

val value by lazy { createValue() }

자주 반복될 것 같은 패턴은 프로퍼티 위임 을 활용해서 추출하기 좋은 부분이다. 객체를 프로퍼티 위임하려면 val의 경우 getValue 연산, var의 경우 getValue 와 setValue 연산이 필요합니다. 이러한 연산은 멤버 함수로도 만들 수 있지만, 확장함수로도 만들 수 있습니다.


코들린 stdlib에서 다음과 같온 프로퍼티 델리게이터를 알아 두면 좋습니다.

  • lazy
  • Delegates.observable
  • Delegates.vetoable
  • Delegates.notNull

정리

  • 프로퍼티 델리게이트는 프로퍼티와 관련된 다양한 조작을 할 수 있으며, 컨텍스트와 관련된 대부분의 정보를 갖습니다. 이러한 특징으로 인해서 다양한 프로퍼티의 동작을 추출해서 재사용할 수 있습니다.
  • 표준 라이브러리의 lazy와 observable이 대표적인 예입니다.
  • 프로퍼티 위임은 프로퍼티 패턴을 추출하 는 일반적인 방법이라 많이 사용되고 있습니다.