GoF对单例模式(Singleton Pattern)的定义是:保证一个类只有一个实例的存在,同时提供对该实例加以访问的全局访问方法。
单例模式是一种对象创建型模式,使用单例模式,可以保证一个类实现只能生成唯一实例对象。
单例模式的要点有三个:一是某个类只能有一个实例,二是它必须自行创建这个实例,三是它必须自行向整个体统提供这个实例。
英文定义为:Ensure a class only has one instance,and provide a global point of access to it.
/*
* 唯一的女朋友
*/
public class GirlFriends {
//女朋友姓名
private String name;
//单例对象本身引用
private static GirlFriends girlfriends;
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
//构造函数私有化
private GirlFriends(){
}
//提供一个全局的静态方法
public static GirlFriends get(){
if(girlfriends==null){
synchronized(GirlFriends.class){
if(girlfriends==null){
girlfriends = new GirlFriends();
}
}
}
return girlfriends;
}
}
/*
* 客户端测试类
*/
public class SingletonTest {
/**
* @param args
*/
public static void main(String[] args) {
GirlFriends gf = GirlFriends.get();
gf.setName("MMname");
System.out.println(gf.getName());
}
}