首页 > 其他 > 详细

单例设计模式

时间:2021-09-01 22:01:55      阅读:7      评论:0      收藏:0      [点我收藏+]

介绍:通过单例模式可以保证系统中,应用该模式的这个类只有一个实例。即一个类只有一个对象实例。

 

实现步骤:

1. 将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。
2. 在该类内部产生一个唯一的实例化对象
3. 定义一个静态方法返回这个唯一对象。

 

单例设计模式的类型:

1.饿汉式  饿汉单例设计模式就是使用类的时候已经将对象创建完毕,不管以后会不会使用到该实例化对象,先创建了再说。

2.懒汉式  懒汉式单例设计模式就是需要使用实例化对象的时候再创建对象

 

饿汉式代码实现:

public class Person {
// 使用饿汉式单例设计模式: 比较着急,不管要不要获取我这个类的对象,先创建了该对象再说
// 1. 将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。
private Person(){
}

// 2. 在该类内部产生一个唯一的实例化对象
private static final Person p = new Person();

// 3. 定义一个静态方法返回这个唯一对象。
public static Person getInstance(){
return p;
}

// ....
}

 

懒汉式代码实现:

public class Person {
// 懒汉式单例: 不着急,只要当你调用了getInstance静态方法获取对象的时候,就创建,其他时候不创建
// 1. 将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。
private Person(){

}

// 2. 在该类内部产生一个唯一的实例化对象
private static Person p ;// 默认值为null

// 3. 定义一个静态方法返回这个唯一对象。
public static synchronized Person getInstance(){
// 创建Person类的唯一对象
// 判断一下,如果p这个成语变量的值为null,就创建,不为null,说明该对象已经创建了,直接返回即可
if (p == null){
p = new Person();
}
return p;
}

}

 

饿汉式单例模式和懒汉式单例模式的区别?

创建实例对象的时机:

  1.饿汉式:在使用之前先创建对象

  2.懒汉式:需要使用实例化对象的时候再创建

线程安全:

  1.饿汉式:不存在线程安全问题

  2.懒汉式:多线程的时候存在线程安全问题

单例设计模式

原文:https://www.cnblogs.com/cbt-home/p/15206752.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!