您好,登錄后才能下訂單哦!
這篇文章主要介紹“java設計模式的懶漢式怎么實現”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“java設計模式的懶漢式怎么實現”文章能幫助大家解決問題。
//懶漢式 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("開啟數據庫連接"); } //餓漢式 private static readonly DbConnection dbConnection = new DbConnection(); private DbConnection() { } public static DbConnection getDbConnection() { return dbConnection; } public void openConnection() { Console.WriteLine("開啟數據庫連接"); } //懶漢式 //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();
總結:保證類只有一個實例(自己完成自己的實例化),并且 提供一個全局訪問點。
懶漢式:在第一次被引用的時候實例化,不提前占資源,但需要雙重鎖保證線程安全。
餓漢式:被加載時實例化,需要提前占用資源。
與靜態方法區別:
1、靜態方法里面的對象使用過后會釋放,頻繁使用釋放也耗資源;單例由于有一個實例化,會一直存在。
2、單例可以繼承類,實現接口,方法可以被重載。
3、單例比靜態方法更靈活。
關于“java設計模式的懶漢式怎么實現”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。