OC 單例設計

2021-07-11 11:29:25 字數 1553 閱讀 1605

這段時間公司基本沒有什麼業務,也正好總結總結以前用過的東西,跟大家簡單分享一下,相互學習一下。直接主題,說一下我印象中的單例設計模式,本篇主要圍繞下面4個問題說下:

1.單例是什麼?

單例就是一種常用的設計模式,就是乙個類在系統中只有乙個例項物件,通過全域性的乙個入口對這個例項物件進行訪問,就是這麼簡單。

2.單例的優缺點?

優點:a.可以阻止其他物件例項化單例物件的副本,從而確保所有物件都訪問唯一例項;

b.系統中只存在該類的乙個例項物件,節約系統資源;

缺點:a.單例物件一旦被建立,單例物件的指標就會一直儲存在靜態區中,單例物件在堆中分配的記憶體空間會一直到應用程式終止之後才被釋放掉;

b.如果例項物件長期不使用可能會被系統**,導致物件狀態丟失。

3.ios提供的單例有哪些? 名稱

用法作用

應用程式例項,核心作用是提供了ios程式執行期間的控制和協作工作

nsurlcache

[nsurlcache sharedurlcache]

請求快取例項

nsuserdefaults

[nsuserdefaults standarduserdefaults]

應用程式設定例項,作用是資料持久化

nsfilemanager

[nsfilemanager defaultmanager]

檔案管理例項

nsnotificationcenter

[nsnotificationcenter defaultcenter]

通知例項

還有乙個uiwindow ,就不寫**裡了。

4.單例的寫法是什麼?

//

// singleton.h

// 單例模式

//// created by kity_pei on 16/4/27.

//#import @inte***ce singleton : nsobject

+ (singleton *)defaultmanger;

@end

//

// singleton.m

// 單例模式

//// created by kity_pei on 16/4/27.

//#import "singleton.h"

@implementation singleton

static singleton *defaultmanager = nil;

+ (singleton *)defaultmanger

}return defaultmanager;

}+ (id)allocwithzone:(struct _nszone *)zone

}return defaultmanager;

}//覆蓋該方法確保通過copy產生物件時物件的唯一性

- (id)copy

//覆蓋該方法確保通過mutablecopy產生物件時物件的唯一性

- (id)mutablecopy

@end

OC 設計模式 單例模式

單例模式的作用 可以保證在程式執行過程,乙個類只有乙個例項,而且這個例項易於供外界訪問。永遠只分配一次記憶體給這個類。由於在呼叫alloc方法的時候,都會呼叫allocwithzone,所以要重寫這個方法,保證只分配一次記憶體。dispatch once這個方法可以保證只呼叫一次,並且會自動加鎖,執...

oc單例模式

1 單例模式概念 1 什麼是單例模式 singleton 單例模式的意圖是是的類的物件成為系統中唯一的例項,提供乙個訪問點,供客戶類 共享資源。2 什麼情況下使用單例?1 類只能有乙個例項,而且必須從乙個為人熟知的訪問點對其進行訪問,比如工廠方法。2 這個唯一的例項只能通過子類化進行擴充套件,而且擴...

OC 單例模式

設計模式 用來解決某一特定問題 單例模式 什麼時候使用單例模式?在工程中,一些類只需要乙個例項變數,我們就可以將這些類設計成單例模式 單例模式的作用?當乙個類a被設計成單例模式時,由類a構造出的例項物件之於其他類來說為全域性例項物件,即在每乙個類中由類a構建的例項物件 都是同乙個物件 在oc中如何將...