IOS單例模式 Singleton 單粒模式

2022-09-13 06:36:14 字數 1608 閱讀 3684

單例模式的意思就是只有乙個例項。單例模式確保某乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。這個類稱為單例類。

單例模式是乙個類在系統中只有乙個例項物件。通過全域性的乙個入口點對這個例項物件進行訪問

ios sdk中也有許多類使用了單例模式,例如,

1.單例模式的要點:

顯然單例模式的要點有三個;一是某個類只能有乙個例項;二是它必須自行建立這個例項;三是它必須自行向整個系統提供這個例項。

2.單例模式的優點:

1.例項控制:singleton 會阻止其他物件例項化其自己的 singleton 物件的副本,從而確保所有物件都訪問唯一例項。

2.靈活性:因為類控制了例項化過程,所以類可以更加靈活修改例項化過程

ios中的單例模式

在objective-c中要實現乙個單例類,至少需要做以下四個步驟:

1、為單例物件實現乙個靜態例項,並初始化,然後設定成nil,

2、實現乙個例項構造方法檢查上面宣告的靜態例項是否為nil,如果是則新建並返回乙個本類的例項,

3、重寫allocwithzone方法,用來保證其他人直接使用alloc和init試圖獲得乙個新實力的時候不產生乙個新例項

4、適當實現allocwithezone,copywithzone,release和autorelease。

在.**件中 

//公共的靜態訪問方法

+(weiboaccountmanager*)shared;

//第一步:靜態例項,並初始化。,

staticweiboaccountmanager*_shared;

//第二步:例項構造檢查靜態例項是否為nil

+(weiboaccountmanager*)shared

return_shared;

}- (oneway

void)release{}//該方法是空的——不希望使用者release掉這個物件。

-(id)retain //什麼也不做——該單例並不需要乙個引用計數(retain counter)

- (nsuinteger)retaincount // 替換掉引用計數——這樣就永遠都不會release這個單例。

單例的使用方法很簡單,在**中的任意位置,如下使用即可:

1.匯入類的標頭檔案

2.[[weiboaccountmanagershared

] addaccount

:account];   //weiboaccountmanagershared,然後就使用定義的屬性與方法

總結:這個模式使用頻率非常高,通過乙個單例類,可以實現在不同視窗之間傳遞資料。就像之前寫傳參一樣:

@property (nonatomic,retain) uicolor *color;

步驟3:最後在傳參的目的地賦值:

詳細可以看wretchcam部分

java設計模式 單例模式(Singleton)

設計模式 design pattern 是一套被反覆使用 經過分類編目 設計經驗的總結。目的 為了可重用 讓 更容易被他人理解 保證 的可靠性。適用場景 有些物件我們只需要乙個,比如,配置檔案 工具類 執行緒池 快取 日誌物件等。作用 保證整個應用程式中某個例項有且只有乙個。餓漢式 public c...

設計模式學習筆記 單例模式(Singleton)

1.特點 只需乙個例項時考慮。2.概念 保證乙個類僅有乙個例項,並提供乙個訪問它的全域性訪問點。3.類圖 4.程式實現 1 懶漢式 對於懶漢模式,我們可以這樣理解 該單例類非常懶,只有在自身需要的時候才會行動,從來不知道及早做好準備。它在需要物件的時候,才判斷是否已有物件,如果沒有就立即建立乙個物件...

Swift設計模式之單例 SINGLETON

保證乙個類公有乙個例項,並提供乙個訪問它的全域性訪問點。1 使用場景 2 實現的重要三個步驟 swift語言不支援變數及方法的許可權,沒有辦法隱藏變數及方法,可以隨意直接建立乙個例項。單例的建立有很多寫法,swift支援只有struct支援靜態變數,class不支援靜態變數,所以很容易想到,在類的內...