设计模式-单列模式

来源:互联网 发布:淘宝优惠券名称怎么写 编辑:程序博客网 时间:2024/05/03 04:54
单例模式是设计模式中比较简单的一种。适合于一个类只有一个实例的情况
经典的单例模式有三种,懒汉式、饿汉式和 登记式。
懒汉式的特点是延迟加载,直到用到的时候才会加载。
饿汉式的特点是一开始就加载了,类一加载进内存就创建好了对象。

懒汉式代码 
/**
* 单列模式 - 懒汉式 需要的时候再创建
* @author liyang
* 2017年5月9日
*/
public class Teacher {
// 构造方法私有
private Teacher (){}
// 设立静态变量
private static Teacher t = null;
public static Teacher getInstance(){
if (t == null) {
// 并发的情况下 懒汉式 是不安全的
t = new Teacher();
}
return t;
}
}


饿汉式代码
/**
* 单列模式 - 饿汉式 当类加载的时候就创建
*
* 2017年5月9日
*/
public class Student {

// 构造方法私有
private Student (){};
// 设立静态变量,直接创建实例
public static Student s = new Student();
//提供一个公共静态的方法返回 刚才new出来的对象
public static Student getInstance() {
return s;
}
}


注:懒汉式是延迟加载,如果多个线程同时操作懒汉式就有可能出现线程安全问题。
开发常用饿汉式,因为饿汉式简单安全。懒汉式多线程的时候容易发生问题


1 0