class Singleton {
static let shared = Singleton()
var age: Int = 0
private init() { }
}
var singletonA = Singleton.shared
var singletonB = Singleton.shared
singletonB.age = 75
print(singletonA.age) // 75
print(singletonB.age) // 75
// 'Singleton' initializer is inaccessible due to 'private' protection level
var foo = Singleton()
singleton은 논리적으로 두 개 이상의 인스턴스가 있을 때 맞지 않을 경우 쓰는 패턴이기도 하다.
하지만 static하기 때문에 남용해서 사용하기 쉬운 패턴이기 때문에 주의하고 의식해가며 써보도록 하자
http://throughkim.kr/2019/09/04/swift-singleton/
https://www.raywenderlich.com/477-design-patterns-on-ios-using-swift-part-1-2