1、说明:java单例模式分为:(懒汉式)和(饿汉式)
2、下面来谈谈:懒汉式
Ⅰ、为什么叫懒汉式?
因为:只有要用(类对象时),才去new对象, 不创建时就(懒得动)。
Ⅱ、 怎么实现呢?
①、构造方法(私有化)
②、创建当前类(静态、私有:对象)作为属性
③、提供(公有 、静态) 返回:该属性对象的(方法)
Ⅲ、代码呢?
//懒汉式代码如下:
public class People {
private People() { // 一、构造方法(私有化)
}
private static People p; // 二、创建当前类(静态、私有:对象)作为属性
public static People getInstance() {// 三、 提供(公有 、静态) 返回:该属性对象的(方法)
if(p == null) {
synchronized(People.class) {
if(p == null) {
p = new People();
}
}
}
return p;
}
}
3、下面来谈谈:饿汉式
Ⅰ、为什么叫饿汉式?
因为:它(迫不及待)的先把(对象创建好)目的(有备无患)。
Ⅱ、 怎么实现呢?
①、构造方法(私有化)
②、创建当前类(静态、私有:对象)作为属性, 并且直接new 对象(存起来)
③、提供(公有 、静态) 返回:该属性对象的(方法)
Ⅲ、代码呢?
//饿汉式代码如下:
public class People {
private People() { // 一、构造方法(私有化)
}
private static People p = new People(); // 二、创建当前类(静态、私有:对象)作为属性, 并且new对象存起来
public static People getInstance() { // 三、 提供(公有 、静态) 返回:该属性对象的(方法)
return p;
}
}
4、(懒汉式)与(饿汉式)比较:
Ⅰ、懒汉式速度更慢:因为加了(同步锁)
Ⅱ、饿汉式代码更:简单