曝氣器 Spring為啥默認(rèn)把bean設(shè)計(jì)成單例的?
Spring為啥默認(rèn)把bean設(shè)計(jì)成單例的?為什么?單例bean只能在第一次創(chuàng)建bean時(shí)創(chuàng)建。將來,bean將被重用,對(duì)象將不會(huì)頻繁創(chuàng)建。單件豆子有很多優(yōu)點(diǎn),例如:1。重用bean降低了新實(shí)例的性能
Spring為啥默認(rèn)把bean設(shè)計(jì)成單例的?
為什么?
單例bean只能在第一次創(chuàng)建bean時(shí)創(chuàng)建。將來,bean將被重用,對(duì)象將不會(huì)頻繁創(chuàng)建。
單件豆子有很多優(yōu)點(diǎn),例如:1。重用bean降低了新實(shí)例的性能消耗;
2。減少JVM垃圾收集,因?yàn)閎ean更少,所以回收的對(duì)象更少;
3。您可以更快地獲取bean,因?yàn)閟pring在生成單例對(duì)象之后將它們存儲(chǔ)在緩存中。
單例模式構(gòu)造函數(shù)為什么要是私有的?
私有(Private)構(gòu)造函數(shù)是為減少誤用和猜測(cè)而設(shè)計(jì)的規(guī)則。
您可以想象,當(dāng)您的類有一個(gè)公共構(gòu)造函數(shù),并且您的文檔描述沒有那么詳細(xì)和清晰地告訴用戶應(yīng)該使用靜態(tài)成員而不是使用構(gòu)造函數(shù)來構(gòu)造實(shí)例(或用戶根本忽略的文檔)時(shí),用戶會(huì)感到困惑。在這個(gè)時(shí)候,不穩(wěn)定的因素會(huì)埋在程序里,有時(shí)我們?cè)谶@里很難找到它們。
如果您使用私有構(gòu)造函數(shù),當(dāng)您嘗試轉(zhuǎn)到“新建”時(shí),編譯器將立即阻止當(dāng)前操作。
您可能認(rèn)為自己使用它并不重要,但是當(dāng)您在兩周內(nèi)回顧您的代碼時(shí),如果沒有這個(gè)私有構(gòu)造函數(shù),您甚至可能會(huì)想,“為什么不能通過new使用這個(gè)對(duì)象?”