Home » singleton

singleton

(Swift) tip – NSDateFormatter는 singleton으로 사용하라?

NSDateFormatter와 관련된 애플 공식 문서에는 다음과 같은 내용이 있다. 날짜 포매터를 생성하는 일은 비싼 작업입니다. 만약 포매터를 빈번하게 사용해야한다면, 여러 개의 인스턴스를 만들고 버리는것보다 하나의 인스턴스를 만들어서 이를 캐시에 보관해두는 편이 더 효율적입니다. static 변수를 사용하는 것도 한 가지 방법입니다. 1 이는 포매터에 의존하는 어떤 타입이 있을 때, 싱글턴을 쓰기에 참 좋은 예가 된다는 것을 암시한다. Objective-C에서는 싱글턴을 다음과 같은 식으로 만들었다. @implementation SomeClass +(NSDateFormatter*) defaultFormatter{ static NSDateFormatter *defaultFormatter = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ defaultFormatter= [[NSDateFormatter alloc] init];… 더 보기 »(Swift) tip – NSDateFormatter는 singleton으로 사용하라?

싱글톤

싱글톤은 SharedInstance라는 명목으로 코코아 내에서도 상당히 자주 쓰이는 패턴이다. SharedApplication이나 NSFileManager, NSNotificationCenter 등에서 많이 활용된다. 쉽게 생각하면 다음과 같은 식으로 구현하면 될 것이라 보는데…

static SomeClass *sharedObject;
+ (SomeClass *)sharedInstance {
    if (sharedObject == nil) {
        sharedObject = [[self alloc] init];
    }
    return sharedObject;
}

더 보기 »싱글톤

[Objective-C] CGD를 사용한 싱글톤 구현하기 (공유 인스턴스)

어떤 클래스의 인스턴스를 공용으로 만드는 것은 사실 알게 모르게 많이 사용하고 있는 패턴이다. 예를 들어 [NSFileManager defaultManager] 라든가 [UIApplication sharedApplication], [NSNotificationCenter defaultCenter] 같은 것들이 공용 인스턴스가 될 것이다. 이는 싱글톤이라는 패턴이라고 하는데, 그러니까 단 하나만 존재한다는 뭐 그런 의미겠지. 암튼 싱글톤을 만드는 방법은 좋은 점도 있겠지만 글로벌하게 접근하는 객체를 위해서 만들기에는 좀 부담스럽지 않은가 하는데, 아래와 같은 방법을 통해 (이는 전통적인 싱글톤 구현방법은 아니라고 한다.) 손쉽게 만들 수 있다. 이는 코드를 그대로 가져다 붙이기만 하면 되고, 빠르고, ARC의 적용을 받으며,… 더 보기 »[Objective-C] CGD를 사용한 싱글톤 구현하기 (공유 인스턴스)