单例模式是对象的创建模式的一种,它保证一个类有且只有一个实例,而且自行实例化并向整个系统 提供这个实例。这个类则称为单例类。
Singleton 是一种创建型模式, 指某个类采用 Singleton 模式, 则在这个类被创 建后,只可能产生一个实例供外部访问,并且提供一个全局的访问点。
单例模式的特点 :
单例类只能有一个实例 ;单例类必须自己创建自己的唯一实例;单例类必须给所有其他对象提供这一实例。
模式中的单例模式分为:饿汉模式和懒汉模式。
顾名思义: 饿汉模式是对食物( Singleton )比较渴望的,所有一开始就 new 了一个来满足 (食欲) 。
饿汉式 :
public class Singleton1 {
private Singleton1(){
}
private static final Singleton1 instance =new Singleton1();
public static Singleton1 getInstancei(){
return instance ;
}
}
懒汉模式是对食物( Singleton )没兴趣或者懒得自己获取食物,直到饿的时候 (用到的时候)才获取一个。
懒汉式 :
public class Singleton {
private Singleton(){
}
private static Singleton instance ;
public static Singleton getInstance() {
if ( instance == null) {
instance = new Singleton();
}
return instance ;
}
}
单例模式使用的注意:
不要使用单例模式存取全局变量。这违背了单列模式的用意,最好放到对应类的静态成员中。