싱글톤 패턴(Singleton Pattern)

썹스·2023년 1월 17일
0

📌 싱글톤 패턴(Singleton Pattern)

싱글톤 패턴은 애플리케이션(Application) 구현 시 절대 유일한 객체 하나만을 구현하고 싶을 때 사용하는 디자인 패턴입니다.

싱글톤 패턴으로 만들어진 객체는 한번 생성되면 애플리케이션이 종료될 때까지 메모리의 데이터(Data) 영역에 상주합니다.

절대 유일 객체를 변수에 할당하여 사용할 경우 해당 변수에 접근이 이루어지는 경우에만 객체가 메모리의 데이터(Data) 영역에 할당됩니다. (지연 저장 속성의 특징과 비슷)

✅ 싱글톤 패턴 형태

class 클래스명{
    static let 변수이름 = 클래스명()
   
        ...원하는 코드 작성...
   
    private init() {}  //새로운 객체 생성을 막는 코드
}

클래스 내부에 private init() {} 코드를 구현하지 않으면 클래스로부터 새로운 객체를 계속해서 생성할 수 있으므로 싱글톤 패턴을 구현할 수 없습니다.
절대 유일 객체를 구현하고자 할 때는 접근 제어(Access Controls) 키워드인 private를 사용한 private init() {} 코드를 꼭 작성해주어야 합니다.


✅ 싱글톤 패턴 구현

class Man{
    static let shared = Man()  //클래스 내부에서 객체를 생성 -> 생성한 객체를 전역변수에 할당
    var age = 5
    private init() {}  //새로운 객체 생성을 막는 코드
}

// shared -> 절대 유일 객체
let kim = Man.shared  //절대 유일 객체를 변수(상수)에 할당
let lee = Man.shared
kim.age  //5
lee.age  //5

Man.shared.age = 100
kim.age  //100
lee.age  //100

🤔 싱글톤 패턴은 왜 사용할까?

싱글톤 패턴은 절대 유일한 하나의 객체를 생성한 뒤 해당 객체를 공유하여 사용하고 싶을 때 사용되는 디자인 패턴입니다.

하나의 객체만을 생성한 뒤 해당 객체를 공유하여 사용하기 때문에 메모리 공간을 효율적으로 사용할 수 있다는 장점을 가지고 있습니다.

싱글톤 패턴의 사용은 여러 ViewController에서 공통적인 데이터를 공유하여 사용해야 할 때 주로 사용됩니다. (로그인 후 사용자 데이터 등...)

단점은... 더 공부하고 작성하겠습니다..

profile
응애 나 코린이(비트코인X 코딩O)

0개의 댓글