[swift]Singleton Pattern
singleton
인스턴스를 하나만 생성하게 해 언제 어디서근 참조할 수 있도록 하는 패턴
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()
- shared라는 static property를 선언
- 추가 인스턴스 생성을 방지하기 위해 init을 private로 제한
- 여기서 public으로 변경하면 FileManager처럼 새로 인스턴스를 만들 수 있다. Background thread에서 사용한다면 이 방법을 권장하고 이런 패턴을 singleton plus라고 한다 참고
singleton 특징
singleton은 논리적으로 두 개 이상의 인스턴스가 있을 때 맞지 않을 경우 쓰는 패턴이기도 하다.
하지만 static하기 때문에 남용해서 사용하기 쉬운 패턴이기 때문에 주의하고 의식해가며 써보도록 하자
reference
http://throughkim.kr/2019/09/04/swift-singleton/
https://www.raywenderlich.com/477-design-patterns-on-ios-using-swift-part-1-2
Author And Source
이 문제에 관하여([swift]Singleton Pattern), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@okstring/swiftSingleton-Pattern저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)