87-Swift의 단일 예(Singleton)
단례는 무엇입니까?
단례는 소프트웨어 디자인에서 자주 사용하는 모델이다.그것의 핵심 구조에는 단례라고 불리는 특수류만 포함되어 있다.단일 모드를 통해 시스템에서 이 모드를 응용하는 클래스는 하나의 클래스만 하나의 실례가 있다는 것을 보장할 수 있다.즉, 하나의 클래스는 하나의 대상 실례만 있다.
단례적 역할
클래스의 대상을 시스템의 유일한 실례로 만들다.
단례적 특징
4
클래스의 대상을 시스템의 유일한 실례로 만들다.
단례적 특징
4
4
4
단례적 장단점
이점:
4
4
결점
4
4
4
OC 버전의 단일 예 @implementation SingletonManager
+ (instancetype)sharedManager {
static SingletonManager * singleton = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
singleton = [[self alloc] init];
});
return singleton;
}
@end
GCD에서 dispatch 사용once_t는 안에 있는 코드가 한 번만 호출되는 것을 보장하여 단일 라인의 안전을 보장할 수 있다.
Swift 에디션 예제 /*!
,
*/
class Singleton {
static let singleton = Singleton() // “ ” dispatch_once
private init(){}
}
혹은class SingletonManager: NSObject {
static let singleton = SingletonManager()
private override init() {
}
}
애플은 이 초기화 포장을 swiftonce_block_그것의 유일성을 보장하기 위해 invoke 중.또한, 우리는 이 유형에 기본적인 공개 초기화 방법을 덮어쓰는 개인적인 초기화 방법을 추가했습니다. 이것은 프로젝트의 다른 곳에서 init를 통해 자신의 MyManager 실례를 생성할 수 없게 하고, 유형 단례의 유일성을 보장합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSON
JSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다.
그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다.
저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
@implementation SingletonManager
+ (instancetype)sharedManager {
static SingletonManager * singleton = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
singleton = [[self alloc] init];
});
return singleton;
}
@end
/*!
,
*/
class Singleton {
static let singleton = Singleton() // “ ” dispatch_once
private init(){}
}
혹은
class SingletonManager: NSObject {
static let singleton = SingletonManager()
private override init() {
}
}
애플은 이 초기화 포장을 swiftonce_block_그것의 유일성을 보장하기 위해 invoke 중.또한, 우리는 이 유형에 기본적인 공개 초기화 방법을 덮어쓰는 개인적인 초기화 방법을 추가했습니다. 이것은 프로젝트의 다른 곳에서 init를 통해 자신의 MyManager 실례를 생성할 수 없게 하고, 유형 단례의 유일성을 보장합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.