Singleton
싱글톤 패턴은 특정 용도의 객체를 하나 생성해서 여러 상황에 공용으로 사용하고 싶을 때 사용하는 방법이다.
인스턴스가 하나만 존재하는 것을 보장하게되며, 주로 환경설정, 네트워크객체, 로그인 정보 등을 특정 용도로 생성해둔 객체에 넣어두고 필요할 때 접근한다.
인스턴스가 하나만 존재하는것을 보장하므로 메모리 낭비를 방지할 수 있고 데이터를 공유할 수 있다는 장점이 있다.
class Singleton {
static let shared = Singleton()
let value = 3
private init(){}
}
Singleton.shared.value
- static을 활용해 인스턴스를 저장할 타입 프로퍼티를 생성.
- init을 호출해 또 다른 인스턴스를 생성하는것을 막는다.
- 메모리가 할당되는 시점은 lazy하게 최초로 접근하는 시점에 초기화된다.
- 한 번 할당된 메모리는 프로그램이 종료될 때 까지 남아있게된다.