13 單例模式

2021-07-22 12:35:41 字數 1381 閱讀 6688

單例設計模式

·基本概念

單例設計模式運用較為普遍、廣泛且較為簡單的設計模式之一,它的設計原理是:始終返回乙個例項,即乙個類始終只有乙個例項。

建立單例的基本步驟

·宣告乙個單件物件的靜態例項,並初始化為nil。

·建立乙個類的類工廠方法,生成乙個該類的例項,當且僅當這個類的例項為nil時

·覆蓋allocwithzone:方法,確保使用者(程式設計師)在直接分配和初始化物件時,不會產生另乙個物件。

·實現nscopying協議,覆蓋release、autorelease、retain、retaincount方法, 以此確保單例的狀態。

·在多執行緒的環境中,注意使用@synchronized關鍵字,確保靜態例項被正確的建立 和初始化。

#import 

@inte***ce

usercontext : nsobject

@property(nonatomic,copy)nsstring *username;

@property(nonatomic,copy)nsstring *email;

+ (id)shareusercontext;

@end

#import "usercontext.h"

static usercontext *segtoninstance = nil;

@implementation

usercontext

+ (id)shareusercontext

}return segtoninstance;

}#pragma mark - 下面的方法為了確保只有乙個例項物件

+ (id)allocwithzone:(nszone *)zone

return segtoninstance;

}- (id)copywithzone:(nszone *)zone

- (id)retain

- (oneway void)release

- (id)autorelease

- (nsuinteger)retaincount

@end

#import 

#import "usercontext.h"

int main(int argc, const

char * argv)

return

0;}

13 單例設計模式

可以保持乙個類的物件唯一性。例如 乙個人有很多叫法,但是無論他有多少種名稱,他只有乙個人。1.使其他類無法建立此類的物件。2.本類建立乙個物件。3.寫乙個方法,便於其他類利用方法訪問這個物件。1 使其他類建立此類物件,建立物件就必須呼叫對應建構函式,將建構函式用private修飾即可 2.在本類自行...

13 單例設計模式

懶漢設計模式public class singleton 2.在單例類中構造物件 private static final singleton single ton newsingleton 3.提供公共的方法,返回這個物件 public static singleton getsingleton ...

Java 13 單例模式

單例模式 類在記憶體僅存在乙個例項物件,且被所有人共享 作用 1.節省記憶體 2.共享物件 步驟 1.建構函式私有化,用private修飾 2.自身定義乙個物件,並且用private static修飾 3.對外提供乙個公共的方法,返回自身的物件 例項 public class singleton 3...