我工作的那點事--學習《設計模式》例項應用(Singleton模式)
公司為了節約資源,對於印表機用了Singleton模式,反正所有的檔案列印只能在一臺機器上。[@more@]今天早上開會,要列印一堆檔案(先列印出來 然後再影印(Memento)),整個公司就一個印表機,由於前面有位同事也在列印東西,沒有辦法只好等他用完了,心裡那個急啊,公司怎麼不多配幾臺印表機呢?
公司為了節約資源,對於印表機用了Singleton模式,反正所有的檔案列印只能在一臺機器上。
對於Singleton的定義如下:
主要為了在整個java工程呼叫中只用到一個例項,這樣節約了記憶體的消耗(只有一臺印表機),如果同時使用,只有等待。但是可以避免啟用多個例項,消耗不必要的資源。
public class Printer{
private Printer(){}
private static Printer instance = new Printer();
//這裡提供了一個外部呼叫印表機的方法
public static PrintergetInstance() {
return instance;
}
}
這裡是將列印先開下來,然後你可以直接呼叫。
但是這樣好像有點浪費哦,你想想印表機一直開著多浪費,還不如有人用時再開啟呢,看看多節約。
public class Printer{
private Printer(){}
private static Printer instance = null;
//這裡提供了一個外部呼叫印表機的方法
public static Printer getInstance() {
if(instance==null)//檢查一下 是否開了。
instance = new Printer();
return instance;
}
}
為了防止同步時的情況,大家可以查考 http://www-106.ibm.com/developerworks/java/library/j-dcl.html?dwzone=java
public class Printer{
private Printer(){}
private static Printer instance = null;
//這裡提供了一個外部呼叫印表機的方法
public static synchronized Printer getInstance() {
if(instance==null)//檢查一下 是否開了。
instance = new Printer();
return instance;
}
}
公司為了節約資源,對於印表機用了Singleton模式,反正所有的檔案列印只能在一臺機器上。
對於Singleton的定義如下:
主要為了在整個java工程呼叫中只用到一個例項,這樣節約了記憶體的消耗(只有一臺印表機),如果同時使用,只有等待。但是可以避免啟用多個例項,消耗不必要的資源。
public class Printer{
private Printer(){}
private static Printer instance = new Printer();
//這裡提供了一個外部呼叫印表機的方法
public static PrintergetInstance() {
return instance;
}
}
這裡是將列印先開下來,然後你可以直接呼叫。
但是這樣好像有點浪費哦,你想想印表機一直開著多浪費,還不如有人用時再開啟呢,看看多節約。
public class Printer{
private Printer(){}
private static Printer instance = null;
//這裡提供了一個外部呼叫印表機的方法
public static Printer getInstance() {
if(instance==null)//檢查一下 是否開了。
instance = new Printer();
return instance;
}
}
為了防止同步時的情況,大家可以查考 http://www-106.ibm.com/developerworks/java/library/j-dcl.html?dwzone=java
public class Printer{
private Printer(){}
private static Printer instance = null;
//這裡提供了一個外部呼叫印表機的方法
public static synchronized Printer getInstance() {
if(instance==null)//檢查一下 是否開了。
instance = new Printer();
return instance;
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9879276/viewspace-984940/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 我工作的那點事--學習《設計模式》例項應用(strategy模式)設計模式
- 我工作的那點事--學習《設計模式》例項應用(Mediator模式)設計模式
- 我工作的那點事--學習《設計模式》例項應用(factory模式)設計模式
- 我工作的那點事--學習《設計模式》例項應用(Prototype模式)設計模式
- 我工作的那點事--學習《設計模式》例項應用(Builder模式)設計模式UI
- 我工作的那點事--學習《設計模式》例項應用(Observer模式)設計模式Server
- 我工作的那點事--學習《設計模式》例項應用(decorator模式)設計模式
- 我工作的那點事--學習《設計模式》例項應用(Adapter模式)設計模式APT
- 我工作的那點事--學習《設計模式》例項應用(composite模式)設計模式
- 我工作的那點事--學習《設計模式》例項應用(Facade模式)設計模式
- 設計模式—singleton(單例模式)設計模式單例
- 設計模式 - 單例模式(Singleton)設計模式單例
- java設計模式-單例模式SingletonJava設計模式單例
- 設計模式之單例模式 - Singleton設計模式單例
- 設計模式——3單例模式(Singleton)設計模式單例
- Singleton 單例設計模式單例設計模式
- PHP設計模式(四)單例模式(Singleton)PHP設計模式單例
- 設計模式之單例模式(Singleton Pattern)設計模式單例
- Java設計模式——單例模式(Singleton pattern)Java設計模式單例
- 《設計模式》 - 1. 單例模式( Singleton )設計模式單例
- Java設計模式之單例模式(Singleton)Java設計模式單例
- 常用設計模式-單例模式(Singleton pattern)設計模式單例
- 我學設計模式 之 單例模式設計模式單例
- 設計模式的征途—1.單例(Singleton)模式設計模式單例
- 設計模式學習-單例模式設計模式單例
- 我所理解的設計模式(C++實現)——單例模式(Singleton Pattern)設計模式C++單例
- 設計模式--單例(Singleton Pattern)設計模式單例
- Scala 與設計模式(一):Singleton 單例模式設計模式單例
- PHP設計模式(一)—單例模式(Singleton Pattern)PHP設計模式單例
- Java設計模式之單例模式(Singleton Pattern)Java設計模式單例
- JAVA設計模式之 單例模式【Singleton Pattern】Java設計模式單例
- 設計模式 - 單例模式Singleton的8種寫法設計模式單例
- 設計模式學習之單例模式設計模式單例
- 設計模式之“物件效能模式”: Singleton 單例模式(筆記)設計模式物件單例筆記
- 設計模式(四)Singleton設計模式設計模式
- 設計模式應用舉例設計模式
- 我的Java設計模式-單例模式Java設計模式單例
- 設計模式快速學習(三)單例模式設計模式單例