单例模式的目的是保证一个类有且仅有一个实例,并向外提供一个访问它的全局访问点。单例模式拥有一个私有构造函数,确保外界不能通过new关键字来直接实例化它,除此之外,在单例类中还有一个静态私有方法供外界调用,实例化该单例对象。
代码实现如下:
/**
* 单例模式
*
* @Author: Rick
* @Date: 2018/10/25 18:45
*/
public class SingleTon {
/**
* 静态私有成员变量
*/
private static SingleTon singleTon = null;
/**
* 私有构造函数
*/
private SingleTon() {
}
/**
* 静态共用工厂方法
*
* @return 唯一实例
*/
public static SingleTon getSingleTon() {
if (singleTon == null) {
singleTon = new SingleTon();
}
return singleTon;
}
}
为了测试该单例类是否是唯一对象,编写以下测试代码:
/**
* 单例模式对象创建比较
*
* @Author: Rick
* @Date: 2018/10/25 18:53
*/
public class SingTonClient {
public static void main(String[] args) {
//创建对象1
SingleTon singleTon1 = SingleTon.getSingleTon();
//创建对象2
SingleTon singleTon2 = SingleTon.getSingleTon();
//是否为单例
if (singleTon1 == singleTon2) {
System.out.println("两个对象是同一个实例");
} else {
System.out.println("两个对象不是同一个实例");
}
}
}
编译代码并运行,输出结果为:
两个对象是同一个实例