본문 바로가기

iOS

Swift 싱클톤 패턴

* singleton : 영어사전적 의미로 단독 개체라는 뜻이 있다.                                                                                      어떠한 클래스의 인스턴스가 단 하나만 존재하도록 강제하는 생성패턴을 말하는 것. 

간단하게 설명하면, 클래스의 인스턴스가 딱 하나만 존재할 때 이 인스턴스로의 접근을 쉽게 할 수 있도록 만들어 주는 방법이다.           생성자가 여러차례 호출되더라도 실제로 생성되는 객체는 하나이다.                                                                                                                      특정용도로 객체를 하나 생성하여 공용으로 사용하고 싶을때 사용하는 방법이다.                                                                                              객체는 임의로 메모리에서 해제해주지 않는 이상 프로그램이 실행되고 끝날때 까지 메모리에 유지된다.                                                       

*사용하는 법.                                                                                                                                                                                                                        - static 변수에 해당 클래스의 인스턴스를 할당                                                                                                                                                            - initializer를 private로 설정하여 다른 곳에서 인스턴스를 또 생성하지 못하도록 해야함 -> Thread-safe

class Singleton {
    static let shared = Singleton()
    private init() {}
}

-> let 으로 선언한 것은 기복적으로 thread-safe 하므로 objective-c에서 처리하던 dispatch_once_t 같은 처리를 하지 않아도 된다.          -> static 전역변수로 선언한 것은 lazy 하게 동작하므로 가장 처음 singleton을 생성하기 전에는 메모리에 올라가지 않는다. 

'iOS' 카테고리의 다른 글

Swift Joined()  (0) 2020.10.19
Swift 구조체 vs 클래스  (0) 2020.04.13
Swift 프로토콜  (0) 2020.04.13
Swift 클로저  (0) 2020.04.06
Swift 메모리 관리  (0) 2020.04.03