學習設計模式(單例模式)

2022-04-11 17:02:29 字數 2057 閱讀 6061

package

com.xue.baozi;

/***

@author

baozi

* 模擬建立物件的時候銷毀記憶體資源

* 單例:就是在程式執行中,保證記憶體中只存在乙個物件的副本

* 實現單例的步驟:

* 1、只能提供乙個預設構造器的訪問修飾符改為private(將類中的空的構造器私有化)

* 2、在類中提供乙個靜態的私有的與當前類同型別的屬性

* 3、在類中提供乙個建立當前類例項靜態的方法

* * 使用中:

* 要使用才去建立,不會浪費資源

* 2、餓漢式:

* 1、執行緒安全,但是耗費記憶體(如果沒有用他的話,就浪費資源了)

* 2、一進來就已經建立好了 */

public

class

myconnection

//}public

void

getconn()

/******************************修改為單例*************************

* 1、只能提供乙個預設構造器的訪問修飾符改為private**/

private

myconnection()

catch

(interruptedexception e)

for (int i = 0; i < 10000; i++) {}

}/**

2、在類中提供乙個靜態的私有的與當前類同型別的屬性

*/private

static myconnection conn = null;

//餓漢式 :執行緒安全,但是耗費記憶體(如果沒有用他的話,就浪費資源了)

//private static myconnection conn = new myconnection();

/**3、在類中提供乙個建立當前類例項靜態的方法

*///

public static myconnection newinstance()

//} catch (exception e)

//return conn;//}

/**

*/public

static

myconnection newinstance() }}

return

conn;

} public

static

void

main(string args)

catch

(exception e)

}}

package

com.xue.baozi;

import

org.junit.test;

/***

@author

baozi

* @title

* @date 2018/4/24 14:27

* @description */

public

class

connnectiontest

//long endtimemills = system.currenttimemillis();

"執行時間為:" + (endtimemills - starttimemills));

//} catch (exception e) //}

@test

public

void

connnectiontest()

long endtimemills =system.currenttimemillis();

system.out.println(endtimemills);

system.out.println("執行時間為:" + (endtimemills -starttimemills));

} catch

(exception e)

}}

學習設計模式 單例模式

適用於 優點 缺點 1.懶漢式 public class singleton public static synchronized singleton getinstance return uniqueinstance 2.餓漢式 public class singleton public stat...

設計模式學習 單例模式

單例模式是一種常用的軟體設計模式。通過單例模式可以保證系統中乙個類只有乙個例項而且該例項易於外界訪問,從而方便對例項個數的控制並節約系統資源。如果希望在系統中某個類的物件只能存在乙個,單例模式是最好的解決方案。1.單例模式特點 2.單例模式作用 3.單例模式種類 a.餓漢式 b.懶漢式 c.懶漢式 ...

學習設計模式( ) 單例模式

定義 確保乙個類只有乙個例項,而且自行例項化並向整個系統提供這個例項。型別 建立類模式 單例模式應該是23種設計模式中最簡單的一種模式了。它有以下幾個要素 單例模式現在主流推薦第一種雙重檢查型。以前流行的有根據例項化物件時機的不同有分為兩種 一種是餓漢式單例,一種是懶漢式單例。餓漢式單例在單例類被載...