单例模式概述: Java 中最简单的设计模式,属于创建型模式中的一种。
分类: 懒汉式、饿汉式、登记式(可忽略)。
理解: 某些对象创建是十分耗时耗内存,这种对象我们称之为重量级对象(反之,轻量级对象)。
重量级对象如果每次都创建,无形中效率低下,设计为单例对象,重复使用。
特征:
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
//饿汉式
public class SingleTon{
private final static SingleTon single= new SingleTon();
//私有化构造器
private SingleTon(){}
//提供一个公开的静态方法,返回唯一实例
public static SingleTon getSingleTon(){
return single;
}
}
//懒汉式
public class SingleTon1{
//私有或构造器
private SingleTon1(){}
//内部类方式 线程安全,延迟加载,实现简单
private static class SingleFactory{
private static final SingleTon1 single = new SingleTon1();
}
//提供一个公开的静态方法,返回唯一实例
public static SingleTon1 getInstance(){
return SingleFactory.single;
}
}
//测试类
public class A{
public static void main(String[]args){
//饿汉式
SingleTon single=SingleTon.getSingleTon();
//懒汉式
SingleTon1 single1=SingleTon1.getInstance();
}
}