单例模式,用来保证一个对象只能创建一个实例,同时,它还提供了对实例的全局访问方法。
单例模式只由单个类组成,实现简单。为确保单例实例的唯一性,构造器都要被声明为私有(private),然后通过声明静态(static)方法实现全局访问,获得该单例实例。
/**
* 单例模式
* 所有的单例模式的(1)构造器都要被声明为私有的private,
* (2)再通过声明静态方法static实现全局访问获得该单例实例
*/
package designPatterns;
public class Singleton {
private static Singleton instance;
// 构造器私有
private Singleton() {
System.out.println("单例模式构造函数");
}
// 通过静态方法实现全局访问获取该单例示例
public static Singleton getInstance() {
// 如果实例不存在,则构造一个实例;否则直接返回已有实例。
if(instance==null) {
instance = new Singleton();
}
return instance;
}
// 普通方法
public void doSomething() {
System.out.print("单例模式的一个普通方法");
}
public static void main(String[] args) {
Singleton sin = Singleton.getInstance();
sin.doSomething();
}
}
输出结果:
单例模式构造函数
单例模式的一个普通方法