單例模式(Singleton Pattern)
定義:
確定一個類隻有一個執行個體,而且自行執行個體化并向整個系統提供這個執行個體。
類圖:
案例描述: 公司裡面的所有員工共用一台列印機列印檔案。 列印機是全局唯一資源,可以用單例描述。
案例源碼:
/*
* shsheng
*/
package DesignPatterns;
public class SingletonPattern {
public static void main(String[] args) {
Staff staff1=new Staff(1);
Staff staff2=new Staff(2);
staff1.print();
staff2.print();
}
static class Printer{
private static Printer instance;
public static Printer getInstance(){
if(instance==null){
instance=new Printer();
}
return instance;
}
@Override
public String toString(){
return "列印機";
}
}
static class Staff{
int num;
public Staff(int num){
this.num=num;
}
public void print(){
Printer printer=Printer.getInstance();
System.out.println(this+"使用"+printer+"列印檔案!");
}
@Override
public String toString(){
return "員工"+num;
}
}
}
運作結果: 員工1使用列印機列印檔案!
員工2使用列印機列印檔案!