概念:整個應(yīng)用或系統(tǒng)只能有該類的一個實例
在iOS開發(fā)我們經(jīng)常碰到只需要某類一個實例的情況,最常見的莫過于對硬件參數(shù)的訪問類,比如UIAccelerometer.這個類可以幫助我們獲得硬件在各個方向軸上的加速度,但是我們僅僅需要它的一個實例就夠了,再多,只會浪費內(nèi)存。
所以蘋果提供了一個UIAccelerometer的實例化方法+sharedAccelerometer,從名字上我們也能看出此方法讓整個應(yīng)用共享一個UIAccelerometer實例(PS:iOS 的開放中,我們往往能從方法名中就了解這個方法的作用),它內(nèi)部的如何實現(xiàn)我們暫且不談,先來看看還有哪些類同樣使用了單例模式。
●?UIApplication類提供了 +sharedAPplication方法創(chuàng)建和獲取UIApplication單例
●?NSBundle類提供了 +mainBunle方法獲取NSBundle單例
●?NSFileManager類提供了 +defaultManager方法創(chuàng)建和獲得NSFileManager單例。(PS:有些時候我們得放棄使用單例模式,使用-init方法去實現(xiàn)一個新的實例,比如使用委托時)
●?NSNotificationCenter提供了 +defaultCenter方法創(chuàng)建和獲取NSNotificationCenter單例(PS:該類還遵循了另一個重要的設(shè)計模式:觀察者模式)
●?NSUserDefaults類提供了 +defaultUserDefaults方法去創(chuàng)建和獲取NSUserDefaults單例