2013年9月13日 星期五

Design Pattern - Singleton

學習來源文章
Singletons in Objective-C
iOS Design Patterns

引用蘋果官方介紹
The Singleton design pattern ensures a class only has one instance, and provides a global point of access to it
確保此Singleton class只會產生一個instance, 並且可以在隨時在整個中App

這是個重要的設計模式, 蘋果自己也很常使用Singleton, 例如
[NSUserDefaults standardUserDefaults]
[UIApplication sharedApplication]
[NSFileManager defaultManager]

實作方法有幾種, 不過現在大部分環境都在ARC底下, 而且都會搭配GCD
根據第一篇學習文章說明, 用GCD最大好處應該就執行序安全

@interface SingletonClass : NSObject
+(SingletonClass *)sharedInatance;
@property (strong, nonatomic) NSString *someProperty;
@end

@implementation SingletonClass
+(SingletonClass *)sharedInatance {
 static SingletonClass *sharedInatance = nil;
 static dispatch_once_t onceToken;
 dispatch_once(&onceToken, ^{
  sharedInatance = [[SingletonClass alloc] init];
 });
 return sharedInatance;
}
@end

沒有留言:

張貼留言