單例模式

應用場景:確保程序運行期某個類,只有一份實例,用于進行資源共享控制。

優勢:使用簡單,延時求值,易于跨模塊

敏捷原則:單一職責原則

實例:[UIApplication sharedApplication]。

注意事項:確保使用者只能通過 getInstance方法才能獲得,單例類的唯一實例。

java,C++中使其沒有公有構造函數,私有化并覆蓋其構造函數。

object c中,重寫allocWithZone方法,保證即使用戶用 alloc方法直接創建單例類的實例,

返回的也只是此單例類的唯一靜態變量。




@interface Singleton : NSObject

+?(Singleton?*)sharedSingleton;?

@end


//Singleton.m

#import?"Singleton.h"

@implementation?Singleton

static?Singleton?*sharedSingleton?=?nil;

+?(Singleton?*)sharedSingleton{

static?dispatch_once_t?once;

dispatch_once(&once,^{

sharedSingleton?=?[[self?alloc]?init];

//dosometing

});

returnsharedSingleton;

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容