ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Kotlin] Object
    Developer's Delight/Kotlin 2022. 6. 22. 16:46
    728x90
    반응형

    객체선언 (Object declarions)

    싱글톤 패턴은 다양한 상황에서 사용이 된다. 코틀린은 이런 싱글톤을 쉽게 사용할 수 있도록 객체선언을 이용하여 싱글톤 객체를 만들 수 있도록 지원한다.

    위 처럼 class대신 object 키워드를 이용하여 객체선언이 가능하다. 이러한 선언은 싱글톤을 생성할 수 있다. 위에서 생성한 Application 이란 이름의 객체는 아래와 같이 접근이 가능하다.

       Application.start()

    객체에는 변수, 프로퍼티, 멤버함수 등을 포함시킬 수 있고, 초기화 블록도 작성할 수 있으나, init, constructor를 작성할 수는 없다.

    객체의 생성은 처음 접근할 때 초기화되며, 스레드-세이프가 보장된다. 컴파일러는 여러 스레드에서 싱글톤 객체에 접근하더라도 오직 하나의 인스턴스만 공유하도록 보장해준다.

    Companion Object

    Object를 클래스 내부에 포함시킬 수 있다. (inner class와 같은 방식) Inner object는 자신을 포함하고 있는 클래스의 멤버변수들에도 접근이 가능한다(private 변수 포함). 이러한 방식은 팩토리 패턴을 이용하는 경우에 용이하게 사용할 수 있다. 아래 코드는 Inner object를 이용한 간단한 팩토리이다.

    Human과 Animal object의 차이는 object에 companion이 붙었는가 붙지 않았는가의 차이이다. 이 차이로 인해, Factory의 create() 메소드를 호출 시 마다 매번 객체의 이름을 지정해줘야 한다는 불편함이 있다. companion object는 object의 이름을 Companion 으로 자동 지정해준다. 개발자가 직접 원한다면 이름을 명시할 수도 있으나 권장하지는 않는다.

    참고

    https://kotlinlang.org/docs/object-declarations.html#object-declarations-overview

    728x90
    반응형

    'Developer's Delight > Kotlin' 카테고리의 다른 글

    [Kotlin] Object  (0) 2022.06.22
    [Kotlin] @Volatile 키워드란?  (0) 2022.06.15
    [Kotlin] Scope Function (작성중)  (0) 2022.05.22
    [Kotlin] Coroutine Builder 간략 정리  (0) 2022.04.25

    댓글 0

Designed by Tistory.