싱글톤 패턴은 특정 클래스에 대해서 객체가 하나만 생성되도록 보장하는 방법이다. 특정 클래스의 값을 여러 클래스에서 공유해야 한다거나, 하나씩 순서대로 처리할 때 주로 사용된다. 사용자 설정 값은 여러 객체에서 각각의 값을 저장하기 보다는 앱 전체에서 하나의 값으로 관리되어야 한다.
class Singleton {
static let sharedInstance = Singleton()
fileprivate init(){
}
}
싱글톤 패턴은 매우 심플하다.
어느 곳에서든 하나의 값만 존재하는 static 정적 객체를 하나 생성하고 그곳에 클래스 생성을 선언하다.
// 일반적인 형태
let a = ClassName()
a.normalVar
a.normallet
a.normalFunction()
// 정적 요소 사용시
ClassName.staticVar
ClassName.statcLet
ClassName.staticfunction()
class Singleton{
static let sharedInstance = Singleton()
let height: Int
let weight: Int
private init() {
self.height = 100
slef.weight = 200
}
}
let singleton = Singleton.sharedInstance
print("\(singleton.height), \(singleton.weight)")