設計模式解析總結篇---單列模式(Singleton)---001


#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface EDSingleton : NSObject
+(instancetype)sharedInstance;

@end

NS_ASSUME_NONNULL_END
#import "EDSingleton.h"

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

1.單例是啥

一個類只允許有一個實例,在整個程序中需要多次使用,共享同一份資源的時候,就可以創建單例,一般封裝成工具類使用,蘋果封裝成單例常用的有UIApplication,NSUserDefaults,NSNotificationCenter,NSFIleManager等等

2.單例優缺點

優點: 因爲單例模式會使類只有一個實例所以方便使用,並且節省內存資源的分配.因爲使用GCD的方式是線程安全的,所以會避免資源的多重使用
缺點: 單例創建的內存只有在程序結束時纔會被釋放. 由於單例不能被繼承(因爲返回的是同一個實例),所以擴展性很不好

 

明天繼續補充

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章