單例模式,可以說(shuō)是設(shè)計(jì)模式中最簡(jiǎn)單的一個(gè)。
這個(gè)模式相對(duì)于其他幾個(gè)模式相比較獨(dú)立,只需要負(fù)責(zé)控制自己的實(shí)例化數(shù)量單一,而需要考慮為用戶(hù)產(chǎn)生什么樣的實(shí)例,是一個(gè)給人感覺(jué)特別干凈純凈的模式。
Android中很多地方用到了單例模式。單例模式能夠以其特有的優(yōu)勢(shì),替代系統(tǒng)中的全局變量,應(yīng)用非常廣泛。
意圖:
保證一個(gè)類(lèi)僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)。
結(jié)構(gòu):
Android中有很多系統(tǒng)級(jí)別的全局變量,如時(shí)間,輸入法,賬戶(hù),狀態(tài)欄等。Android中對(duì)這些都直接或者間接用到了單例模式。
在多線程的環(huán)境下,單例模式為了保證自己實(shí)例數(shù)量的唯一,必然會(huì)做并發(fā)控制。
效果:
1)創(chuàng)建型模式。
2)對(duì)唯一實(shí)例的受控訪問(wèn)。
3)避免全局變量污染命名空間。
4)允許對(duì)操作和表示的精化。
5)比類(lèi)操作更靈活。