设计模式(一):单例模式
在很多情况下,某些类是不需要被重复产生对象的;
例如:需要有一个程序保存加载的数据信息,这个对象是在程序运行中一直存在的实例化对象,并且不会发生改变
分为两种类型:
懒汉式(需要考虑线程同步问题):在第一次使用的时候进行实例化对象处理
饿汉式:在加载时自动提供类的实例化
要点思想:
保证操作只有唯一一个实例化对象
单例类必须自己创建自己的唯一实例
构造方法私有化,类内部提供static方法获取实例化对象,不管外部如何改变操作则只有一个对象被提供
饿汉式:
/**
* 饿汉式单例模式:
* 在加载时自动提供类的实例化对象
* */
public class SingleTon {
private static final SingleTon INSTANCE = new SingleTon();
//构造函数私有化,此类则不会被实例化
private SingleTon() {
}
//获取唯一实例化对象
public static SingleTon getInstance(){
return INSTANCE;
}
public void print(){
System.out.println("单例模式饿汉例子");
}
}
class SingleTonTest{
public static void main(String[] args) {
SingleTon instance = null;
instance = SingleTon.getInstance();
instance.print();
}
}
懒汉式:
/**
* 懒汉式:
* 在第一次使用时进行实例化对象处理
* */
public class SingleTon {
private static SingleTon instance ;
private SingleTon() {
}
public static SingleTon getInstance(){
//第一次使用,实例化对象
if (instance == null){
instance = new SingleTon();
}
return instance;
}
public void print(){
System.out.println("单例模式懒汉例子");
}
}
class SingleTonTest{
public static void main(String[] args) {
SingleTon instance = null;
instance = SingleTon.getInstance();
instance.print();
}
}