這篇文章主要介紹“java設計模式的懶漢式怎么實現(xiàn)”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“java設計模式的懶漢式怎么實現(xiàn)”文章能幫助大家解決問題。
成都創(chuàng)新互聯(lián)公司成立與2013年,先為阿拉爾等服務建站,阿拉爾等地企業(yè),進行企業(yè)商務咨詢服務。為阿拉爾企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務解決您的所有建站問題。//懶漢式 private static readonly object obj = new object(); private static DbConnection dbConnection; private DbConnection() { } public static DbConnection getDbConnection() { if (dbConnection == null) { lock (obj) { if (dbConnection == null) { dbConnection = new DbConnection(); } } } return dbConnection; } public void openConnection() { Console.WriteLine("開啟數(shù)據(jù)庫連接"); } //餓漢式 private static readonly DbConnection dbConnection = new DbConnection(); private DbConnection() { } public static DbConnection getDbConnection() { return dbConnection; } public void openConnection() { Console.WriteLine("開啟數(shù)據(jù)庫連接"); } //懶漢式 //DbConnection dbConnection= DbConnection.getDbConnection(); //DbConnection dbConnection2 = DbConnection.getDbConnection(); //dbConnection.openConnection(); //if (dbConnection == dbConnection2) //{ // Console.WriteLine("相同的"); //} //Console.ReadLine(); //餓漢式 DbConnection dbConnection = DbConnection.getDbConnection(); DbConnection dbConnection2 = DbConnection.getDbConnection(); if (dbConnection == dbConnection2) { Console.WriteLine("相同的"); } Console.ReadLine();
總結(jié):保證類只有一個實例(自己完成自己的實例化),并且 提供一個全局訪問點。
懶漢式:在第一次被引用的時候?qū)嵗?,不提前占資源,但需要雙重鎖保證線程安全。
餓漢式:被加載時實例化,需要提前占用資源。
與靜態(tài)方法區(qū)別:
1、靜態(tài)方法里面的對象使用過后會釋放,頻繁使用釋放也耗資源;單例由于有一個實例化,會一直存在。
2、單例可以繼承類,實現(xiàn)接口,方法可以被重載。
3、單例比靜態(tài)方法更靈活。
關于“java設計模式的懶漢式怎么實現(xiàn)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識,可以關注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務器買多久送多久。