
單例模式:保證一個類僅有一個實(shí)例许帐,并提供一個訪問它的全局訪問點(diǎn)毕谴。
有什么用?
- 1.實(shí)現(xiàn)資源共享距芬。如CLLocationManager循帐,一個系統(tǒng)只有一個GPS硬件,所以相應(yīng)的類只應(yīng)有一個實(shí)例.
- 2.統(tǒng)一管理离斩。如各種manager瘪匿,NSURLSession跛梗,和現(xiàn)實(shí)生活類似茄袖,如果同一件事有多個管理者,會出現(xiàn)管理上的紊亂.
- 3.類之間的通信,傳值宪祥。如NSUserDefaults家乘,不同的對象使用的是同一個userDefaults,那么這些對象就可以通過userDefaults這個中介來實(shí)現(xiàn)通信.
- 4.節(jié)省資源仁锯。很明顯,因?yàn)橹粫梢粋€對象野芒,而不是多個對象.
怎么做?
- 1.聲明一個單例對象的靜態(tài)實(shí)例双炕,并初始化為nil
- 2.聲明一個類的工廠方法,確保該方法只會生成一個實(shí)例妇斤。通常該方法以sharedXXX命名
- 3.防止通過其他方法生成新的實(shí)例。如copy方法
- 4.線程安全荸恕。如果通過多個線程同時調(diào)用構(gòu)造方法死相,則還是可能生成多個實(shí)例
示例代碼
+ (AccountManager *)sharedManager
{
static AccountManager *sharedAccountManagerInstance = nil;
static dispatch_once_t predicate;
dispatch_once(&predicate, ^{
sharedAccountManagerInstance = [[self alloc] init];
});
return sharedAccountManagerInstance;
}
C/S B/S 以及相關(guān)概念
服務(wù)器(Server)
一個管理資源并為用戶提供服務(wù)的計算機(jī)軟件,通常分為文件服務(wù)器(能使用戶在其它計算機(jī)訪問文件)生宛,數(shù)據(jù)庫服務(wù)器和Web服務(wù)器施掏。也指運(yùn)行以上軟件的計算機(jī)七芭。
網(wǎng)頁服務(wù)器(Web server)
負(fù)責(zé)提供網(wǎng)頁的服務(wù)器蔑赘,通過HTTP協(xié)議傳給客戶端特定的數(shù)據(jù)
雖然每個網(wǎng)頁服務(wù)器程序有很多不同,但有一些共同的特點(diǎn):每一個網(wǎng)頁服務(wù)器程序都需要從網(wǎng)絡(luò)接受HTTP請求缩赛,然后提供HTTP回復(fù)給請求者。HTTP回復(fù)一般包含一個HTML文件辩昆,有時也可以包含純文本文件、圖像或其他類型的文件汁针。
一般來說這些文件都存儲在網(wǎng)頁服務(wù)器的本地文件系統(tǒng)里,而URL和本地檔名都有一個階級組織結(jié)構(gòu)的施无,服務(wù)器會簡單的把URL對照到本地文件系統(tǒng)中必孤。當(dāng)正確安裝和設(shè)置好網(wǎng)頁服務(wù)器軟件,服務(wù)器管理員會從服務(wù)器軟件放置文件的地方指定一個本地路徑名為根目錄敷搪。
現(xiàn)在市場最流行的Web server是Apache(阿帕奇服務(wù)器)
客戶端(Client)
客戶端(Client),是指與服務(wù)器相對應(yīng)嫂便,為客戶提供本地服務(wù)的程序。一般安裝在普通的用戶機(jī)上顽悼,需要與服務(wù)端互相配合運(yùn)行。互聯(lián)網(wǎng)發(fā)展以后冰评,較常用的客戶端包括了如萬維網(wǎng)使用的網(wǎng)頁瀏覽器,收寄電子郵件時的電子郵件客戶端解孙,以及即時通訊的客戶端軟件等坑填。
瀏覽器(Browser)
網(wǎng)頁瀏覽器(英語:web browser弛姜,常被稱為瀏覽器(browser))是一種用于檢索并展示萬維網(wǎng)信息資源的應(yīng)用程序。
C/S
主從式架構(gòu) (Client–server model) 或客戶端-服務(wù)器(Client/Server)結(jié)構(gòu)簡稱C/S結(jié)構(gòu)苍在,是一種網(wǎng)絡(luò)架構(gòu)荠商,它把客戶端 (Client) (通常是一個采用圖形用戶界面的程序)與服務(wù)器 (Server) 區(qū)分開來。每一個客戶端軟件的實(shí)例都可以向一個服務(wù)器或應(yīng)用程序服務(wù)器發(fā)出請求莱没。有很多不同類型的服務(wù)器,例如文件服務(wù)器饰躲、游戲服務(wù)器、Web服務(wù)器等眠寿。
B/S
瀏覽器-服務(wù)器(Browser/Server)結(jié)構(gòu),簡稱B/S結(jié)構(gòu)盯拱,與C/S結(jié)構(gòu)不同例嘱,其客戶端不需要安裝專門的軟件,只需要瀏覽器即可拼卵,瀏覽器通過Web服務(wù)器與數(shù)據(jù)庫進(jìn)行交互,可以方便的在不同平臺下工作腋腮;服務(wù)器端可采用高性能計算機(jī),并安裝Oracle徊哑、Sybase聪富、Informix等大型數(shù)據(jù)庫。B/S結(jié)構(gòu)簡化了客戶端的工作,它是隨著Internet技術(shù)興起而產(chǎn)生的萧豆,對C/S技術(shù)的改進(jìn),但該結(jié)構(gòu)下服務(wù)器端的工作較重涮雷,對服務(wù)器的性能要求更高轻局。