题记
单例模式也是最简单的设计模式,只包含一个类,即单例类。
单例模式的目的是保证一个类有且只有一个实例 ,并提供一个访问它的全局访问点,单例模式包含的角色只有一个,就是Singleton类。
类图
代码
public class Singleton{
private static Singleton instance = null;//静态私有成员变量
//私有构造函数
private Singleton(){
...
}
//静态公有的工厂方法,返回唯一实例
public static Singleton getInstance(){
if(instance == null)
{
instance = new Singleton();
return instance;
}
}
}
//测试类如下
public class Client{
public static void mian(String args[]){
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
if(s1 == s2){
System.out.print("两对象相同");
}
else
{
System.out.print("两对象不同");
}
}
}
总结
单例模式是设计模式中最简单的一种模式,相对而言代码量要小得多。但还是要注意的是:
- 一个类只能有一个实例
- 必须自行创建这个实例
- 必须自行向整个系统提供实例