프로세스 실행 중에 오직 하나의 오브젝트만 생성되도록 강제하는 디자인 패턴,
class Singleton {
static var instance: Singlton
init(instance:Singlton) {
if !Singlton.instance {
Singleton.instance = this
}
return Singleton.instance
}
}
let s1 = Singlton()
let s2 = Singlton()
if (s1 === s2){
print("thry are same , singlton")
}
아무리 다른 오브젝트를 만들어도 결국 같은 오브젝트를 가리킴
사용되는 경우 :
중간 단계 오브젝트를 프로토 타입으로 만들어놓고
이를 딥카피를 통해 오브젝트를 만들어가는 디자인 패턴