单例模式:
1.在单例类的内部实现只生成一个实例,同时它提供一个静态的getInstance()工厂方法;
2.让客户可以访问它的唯一实例;为了防止在外部对其实例化,将其构造函数设计为私有;
3.在单例类内部定义了一个Singleton类型的静态对象,作为外部共享的唯一实例。

单例模式.png
示例代码
class Single {
private int num;
private String name;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
// 方案一
private static Single s = null;
private Single(){}
public static Single getInstance(){
if(s==null)
s = new Single();
return s;
}
/*
方案二
private static Single s = new Single();
public static Single getInstance(){
return s;
}
*/
}
public class singleDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
Single ss = Single.getInstance();
Single sss = Single.getInstance();
ss.setNum(40);
System.out.println(sss.getNum());
sss.setName("zhang");
System.out.println(ss.getName());
}
}