單例

weixin_34337265發表於2016-08-24

iOS設計模式:單例模式

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


2573629-c783cbcb23c59c2c.png
2573629-916b48cef7954f7a.png

單例模式的三個特點:

1,該類只有一個例項

2,該類自行建立該例項(在該類內部建立自身的例項物件)

3,向整個系統公開這個例項介面

在IOS中使用單例模式的情況:

1.如果說建立一個物件會耗費很多系統資源,那麼此時採用單例模式,因為只需要一個例項,會節省alloc的時間

2.在IOS開發中,如果很多模組都要使用同一個變數,此時如果把該變數放入單例類,則所有訪問該變數的呼叫變得很容易,否則,只能通過一個模組傳遞給另外一個模組,這樣增加了風險和複雜度

建立單例模式的基本步驟:

1.宣告一個單例物件的靜態例項,並初始化為nil

2.宣告一個類的工廠方法,生成一個該類的例項,並且只會生成一個

3.覆蓋allcoWithZone方法,確保使用者在alloc 時,不會產生一個多餘的物件

4.實現NSCopying協議,覆蓋release,autorelease,retain,retainCount方法,以確保只有一個例項化物件

5.在多執行緒的環境中,注意使用@synchronized

相關文章