單例設計模式

2021-10-07 10:30:32 字數 1708 閱讀 8589

import org.junit.test;

/** 單例設計模式:

* * 單例:某個類只能有唯一的乙個例項物件。

* * 如何實現單例?

* 1、餓/惡漢式

* 不管我們使用者是否需要這個物件,它都上來先給你建立好這個唯一的物件。

* (1)列舉型別

* (2)形式二

* ①構造器私有化

* ②用乙個全域性的靜態的常量,來儲存這個唯一的例項物件

* (3)形式三

* ①構造器私有化

* ②用乙個私有的靜態的常量,來儲存這個唯一的例項物件

* ③提供乙個靜態方法,來返回這個常量物件

* * 2、懶漢式

* 延遲建立物件。當使用者來或者這個物件,要用到物件時,我再建立。

* (1)形式一:

* 見下面,考慮執行緒安全問題和效能問題

* (2)形式二:內部類形式

* */

public class test17

@test

public void test2()

@test

public void test3()

@test

public void test4()

@test

public void test5()

lazyclass s1;

lazyclass s2;

@test

public void test6()

};thread t2 = new thread()

};t1.start();

t2.start();

try catch (interruptedexception e)

system.out.println(s1);

system.out.println(s2);

system.out.println(s1 == s2);}}

enum singleenum

}class singleclass

}class single

public static single getinstance()

}class lazyclass

public static lazyclass getinstance() catch (interruptedexception e)

instance = new lazyclass();}}

}return instance;

}//安全沒問題,但是認為不是最優的

/* public synchronized static lazyclass getinstance() catch (interruptedexception e)

instance = new lazyclass();

}return instance;

}*///有安全問題

/* public static lazyclass getinstance() catch (interruptedexception e)

instance = new lazyclass();

}return instance;

}*/}

class lazy

private static class inner

public static lazy getinstance()

}

單例設計模式(餓漢單例設計模式 懶漢單例設計模式)

1.什麼是單例 單例的意思是乙個類永遠只存在乙個物件,不能建立多個物件。2.為什麼要用單例 開發中有很多的物件我們只需要乙個,例如虛擬機器物件,任務管理器物件 物件越多越佔記憶體,有時候只需要乙個物件就可以實現業務,單例可以節省記憶體空間。3.如何實現單例 單例的實現方式有 餓漢單例設計模式 通過類...

設計模式 單例設計模式

歷史 最早是建築學領域的模式,然後gof四人由其引申到編碼方面,總結了23種設計模式 設計模式 解決某一類事情最行之有效的方法 2.1 體現 餓漢式,保證物件的唯一性 class singleton 私有化建構函式禁止該類建立物件 private static singleton st new si...

設計模式 單例設計模式

單例模式,是一種常用的軟體設計模式。在它的核心結構中只包含乙個被稱為單例的特殊類。通過單例模式可以保證系統中乙個類只有乙個例項。即乙個類只有乙個物件例項 單例模式的要點有三個 一是某個類只能有乙個例項 二是它必須自行建立這個例項 三是它必須自行向整個系統提供這個例項。單例設計模式 解決的問題 可以保...