單例概念:
????單例是一個(gè)特殊的類,這個(gè)類只能創(chuàng)建一次實(shí)例症杏,例子如下:
? ? ? ? ? ? 1.a = Std(name='leo'), b = Std(name='jack')装获,兩者的指向都是name=‘leo’的對(duì)象;
? ? ? ? ? ? 2.windows中只有一個(gè)回收站,打開一次回收站只會(huì)出現(xiàn)一次窗口,雙擊第二次不會(huì)出現(xiàn)第二個(gè)窗口 厉颤,這就是單例,對(duì)象不會(huì)重新創(chuàng)建,只會(huì)創(chuàng)建一次穴豫;
單例的作用:
? ? ? ? 1.用于有單例需求的業(yè)務(wù)場(chǎng)景,例如windows的回收站逼友;
? ? ? ? 2.之前我做的項(xiàng)目用到了第三方sdk做接口發(fā)送短信驗(yàn)證碼精肃,但是該sdk寫的代碼不夠好,重復(fù)創(chuàng)建對(duì)象去發(fā)送短信帜乞,如果有幾十萬個(gè)用戶同時(shí)有發(fā)送短信的需求司抱,那么該sdk就要重復(fù)創(chuàng)建幾十萬個(gè)用于發(fā)送短信驗(yàn)證碼的對(duì)象,實(shí)際上它只是要調(diào)用對(duì)象的方法進(jìn)行發(fā)送短信罷了黎烈,因此可以用單例設(shè)計(jì)模式減輕服務(wù)器負(fù)擔(dān)习柠,代碼對(duì)比如下:
第三方SDK源代碼:
我寫的單例代碼:
總結(jié):單例設(shè)計(jì)模式用于有減少重復(fù)創(chuàng)建實(shí)例需求的場(chǎng)景,例如windows的回收站頁面照棋,短信發(fā)送對(duì)象等業(yè)務(wù)場(chǎng)景资溃;