在Mac開發(fā)或iOS開發(fā)中我們常常會使用到單例模式。
應用場景:確保程序運行期間某個類,只有一份實例(或對象)榆鼠,用于進行資源共享控制。
優(yōu)勢:使用簡單亥鸠,延時求值妆够,易于跨模塊
敏捷原則:單一職責原則
在開發(fā)中我們會用到NSNotificationCenter识啦、NSFileManager等,獲取他們的實例通過[NSNotificationCenter?defaultCenter]和[NSFileManager?defaultManager]來獲取神妹,還有iOS中的實例:[UIApplication sharedApplication]颓哮,其實這就是單例。
注意事項:確保使用者只能通過 getInstance方法才能獲得鸵荠,單例類的唯一實例冕茅。
java,C++中使其沒有公有構造函數蛹找,私有化并覆蓋其構造函數姨伤。
Objective-C中,重寫allocWithZone方法庸疾,保證即使用戶用 alloc方法直接創(chuàng)建單例類的實例乍楚,
返回的也只是此單例類的唯一靜態(tài)變量。
案例如下: