java設(shè)計(jì)模式之單例模式的詳解及優(yōu)點(diǎn)
java設(shè)計(jì)模式之單例模式
定義:如果一個(gè)類始終只能創(chuàng)建一個(gè)實(shí)例,那么這個(gè)類被稱為單例類,這種設(shè)計(jì)模式被稱為單例模式。
Spring框架里面可以將所有生成的bean對象都設(shè)置為單例模式,只需要在配置Bean實(shí)例時(shí)指定scope=“singleton”即可,或者不做配置默認(rèn)即為單例模式。
我們可以創(chuàng)建一個(gè)小的Demo來演示單例模式的實(shí)現(xiàn),只需要保證該類只能創(chuàng)建一個(gè)實(shí)例,我們可以用權(quán)限修飾符private修飾該類的構(gòu)造器。
提供一個(gè)創(chuàng)建該類的接口,該接口只能用static修飾,類里面創(chuàng)建一個(gè)成員變量來保存生成的實(shí)例。
代碼如下:
package test; class Anmail{ } class singlelonDemo { private static singlelonDemo sd; private singlelonDemo(){ } public static singlelonDemo single(){ if(sd == null){ sd = new singlelonDemo(); } return sd; } } public class singleDemo{ public static void main(String[] args){ singlelonDemo sd1 = singlelonDemo.single(); singlelonDemo sd2 = singlelonDemo.single(); System.out.println(sd1==sd2); } }
輸出結(jié)果為true,表示生成的是一個(gè)實(shí)例。
單例模式是一種應(yīng)用很廣泛的設(shè)計(jì)模式,許多框架都有應(yīng)用,下面要講到的工廠模式里的工廠也只需要單個(gè)實(shí)例。
使用單例模式的兩個(gè)優(yōu)點(diǎn):
1、減少創(chuàng)建java實(shí)例所帶來的系統(tǒng)開銷。
2、便于系統(tǒng)跟蹤單個(gè)java實(shí)例的生命周期、實(shí)例狀態(tài)等。
以上就是java單例模式的實(shí)例詳解,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
- java設(shè)計(jì)模式之單例模式學(xué)習(xí)
- 淺析Java設(shè)計(jì)模式編程中的單例模式和簡單工廠模式
- Java設(shè)計(jì)模式之單例模式實(shí)例詳解【懶漢式與餓漢式】
- Java設(shè)計(jì)模式之單例模式詳解
- 深入解析Java的設(shè)計(jì)模式編程中單例模式的使用
- Java設(shè)計(jì)模式之單例模式實(shí)例分析
- 簡單講解在Java編程中實(shí)現(xiàn)設(shè)計(jì)模式中的單例模式結(jié)構(gòu)
- java 設(shè)計(jì)模式之單例模式
- Java設(shè)計(jì)模式系列之深入淺出單例模式
相關(guān)文章
巧用FutureTask 線程池輕松解決接口超時(shí)問題
這篇文章主要為大家介紹了使用FutureTask結(jié)合線程池輕松解決接口超時(shí)問題的巧妙用法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Spring Data JPA中 in 條件參數(shù)的傳遞方式
這篇文章主要介紹了Spring Data JPA中 in 條件參數(shù)的傳遞方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06使用Spring Data Jpa的CriteriaQuery一個(gè)陷阱
使用Spring Data Jpa的CriteriaQuery進(jìn)行動(dòng)態(tài)條件查詢時(shí),可能會遇到一個(gè)陷阱,當(dāng)條件為空時(shí),查詢不到任何結(jié)果,并不是期望的返回所有結(jié)果。這是為什么呢?2020-11-11