单例模式(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使用打印机打印文件!
员工2使用打印机打印文件!