iOS 單例模式的使用

2021-06-26 13:24:51 字數 817 閱讀 3741

單例有什麼用?單例就是說在程式執行過程中邏輯上保持唯一性的物件。什麼時候會用到單例呢,幾乎所有工程都應該用到單例,因為不論任何程式在設計的時候都需要設計自己的model層,模型會有很多但是肯定需要乙個模型代表自己的程式本身,然後引用一大堆程式本身唯一的東西,比如程式當前的使用者資訊,當前的快取資訊,甚至是程式主要資料結構的基礎物件,比如做乙個電子書應用,書庫肯定是一大堆書的資訊,那麼書庫本身就是唯一的,我在程式很多地方都需要對書庫進行操作,比如入庫,比如出庫比如和網路書庫同步重新整理,又比如快取書庫裡的內容,我需要乙個全域性的並且唯一的物件,那麼就應該用單例

static bookstore* asharedbookstore = nil; // implement static instance

+(bookstore *) sharedbookstore

}return asharedbookstore;

}

這裡要提到@synchronized(){}, 這個是乙個互斥鎖,說起這個就要討論另乙個複雜龐大的部分,多執行緒,和執行緒同步,別的日誌再寫。

在這裡這麼寫就是為了保證單例的建立過程是唯一的,執行一次之後就再不執行了,因為多執行緒的問題,一段**可能會在多個執行緒中被同步執行,如果不做互斥鎖就會引起singleton的物件被創造多個,那麼就失去單例的意義了。

另乙個要提到self,self是ios動態特性的乙個體現,self會在執行時進行檢查,決定self是代表自身還是self.class, 所以你會發現在靜態方法(類方法中)self 可以直接呼叫其他類方法。而在動態方法中 self又可以呼叫成員方法,所以某些條件下self和[self class]等效。

IOS 單例模式

單例模式顧名思義就是只有乙個例項,它確保乙個類只有乙個例項,並且自行例項化並向整個系統提供這個例項。它經常用來做應用程式級別的共享資源控制。這個模式使用頻率非常高,通過乙個單例類,可以實現在不同視窗之間傳遞資料。在objective c中要實現乙個單例類,至少需要做以下四個步驟 1 為單例物件實現乙...

iOS 單例模式

最近在ios開發中,需要用到單例模式,於是自己動手寫了乙個,它看起來是這樣的 1 id sharedinstance return sharedinstance 後來發現許多書上的做法都使用到了bool變數作為標值位,它看起來是這樣的 2 id sharedinstance return share...

iOS 單例模式

在objective c中要實現乙個單例類,至少需要做以下四個步驟 1 為單例物件實現乙個靜態例項,並初始化,然後設定成nil,2 實現乙個例項構造方法檢查上面宣告的靜態例項是否為nil,如果是則新建並返回乙個本類的例項,3 重寫allocwithzone方法,用來保證其他人直接使用alloc和in...