안드로이드 개발/개념

[Android] 싱글톤 패턴이란?

얌자 2021. 5. 28. 09:07

 

 

 

  • 어떤 클래스의 인스턴스는 오직 하나임을 보장하며, 이 인스턴스에 접근할 수 있는 전역적인 접촉점을 제공하는 디자인 패턴이다.
  • 애플리케이션의 시작부터 종료까지 한 번의 생성으로 고정된 메모리 영역을 가지기 때문에 메모리를 효율적으로 사용 할 수 있다.
  • 싱글톤의 인스턴스는 전역적으로 사용되기 때문에 다른 클래스의 인스턴스들이 데이터를 공유 변경이 가능하다는 장점이 있다.
  • 쉽게 말하면 한 번의 선언으로 모든 클래스에서 전역으로 사용 가능한 필드나 메서드를 만드는 것. ( 아무데서나 접근 가능한 필드나 메소드 ex)유저 로그인 아이디 )

 

 

 

 

자바와 코틀린의 싱글턴 패턴

  • 자바에서는 인스턴스 변수를 선언하고 생성자 및 정적 메서드를 추가하는 작업을 추가한다. 
  • 코틀린에서는 단 한 줄로 처리된다

 

◈ 자바 코드

public final class SingleTon {
  private static Singleton instance = null;
  
  private Singleton() { }
  
  public static synchronized Singleton
    getInstance() {
    if (instance == null) {
      instance = new Singleton();
    }
    return instance;
  }
}

 

 

◈ 코틀린 코드(한 줄이면 된다.)

object Singleton