七天學會設計模式 – Singleton

最近和同事一起購入「七天學會設計模式」,不過書中是以 Java 作為示範語言;

而這邊,我會以 Swift 及 Objective-C 來攥寫範例並補充些內容。

Singleton

如同它的命名一般,在整個 App 運作時,僅會有一個 instance。

Swift

Swift 宣告 Singleton 的方式很簡單,就是在 class 底下宣告一個 static 的常數(constant)。

Objective-C

而 Objective-C 底下,我們要注意一些事情;

在 Multi-Thread 的情況下,我們得避免同時有多個 thread 執行建立 instance,故在創建時,必須使用 dispatch_once_t 來確保僅會有一個 thread 執行 instance = [[SingletonDemo alloc] init];

學會了如何創建 Singleton 之後,可以想想哪些物件適合以這種方式創建;

如「目前登入的使用者」,正是可以用 Singleton 的方式做設計,畢竟一個 App 同時僅能有一位使用者登入,是大多數軟體的設計,而這恰巧符合 Singleton 的精神。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s