콘텐츠로 건너뛰기
Home » singleton

singleton

파이썬에서 싱글톤 구현하기

싱글톤은 어떤 클래스의 인스턴스가 하나만 만들어지도록 강제하는 디자인 패턴의 한 종류입니다. 싱글톤은 시스템 전체에 걸쳐 단 하나의 객체 인스턴스만 있으면 될 때 사용할 수 있으며, 전역 변수를 사용하지 않고도 특정한 객체를 어디서나 참조할 수 있게 되는 장점이 있습니다. 싱글톤을 구현하는 일반적인 방법으로는 1) 생성자를 private하게 만들어서 다른 객체가 직접적으로 호출할 수 없도록 하고, 2) 별도의 정적 메소드를 제공하여 싱글톤 객체를 획득할 수 있게 합니다. 싱글톤 구현방법 파이썬에서는 생성자를 숨길 수 없기 때문에, 생성자 그 자체가 싱글톤 객체를 반환하도록 하면 됩니다.… 더 보기 »파이썬에서 싱글톤 구현하기

(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를 사용한 싱글톤 구현하기 (공유 인스턴스)