我是靠谱客的博主 知性丝袜,最近开发中收集的这篇文章主要介绍设计模式之单例模式(创建型模式)1、介绍2、特点3、懒汉式4、饿汉式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

目录

1、介绍

2、特点

3、懒汉式

4、饿汉式


1、介绍

单例模式是非常简单的一种设计模式,属于创建型模式,它提供了一种创建对象的最佳方式

确保某一个类只有一个实例,而且自行实例化并向所有其他对象提供这个实例

主要解决:一个全局使用的类频繁地创建与销毁。

有两种实现模式,懒汉式和饿汉式

2、特点

  • 单例类只有一个实例对象
  • 私有化构造方法,不允许被外界调用
  • 该单例对象必须由单例类自行创建(通过getInstance())
  • 单例类对外提供一个访问该单例的全局访问点(getInstance()方法public static)

3、懒汉式

被调用时,会判断对象是否已存在,只有第一次调用的时候会去创建这个实例

是否线程安全:懒汉式本身是线程不安全的,在getInstance方法上加synchronized保证线程安全

效率:加了锁,执行效率就低了

public class LazySingleton {
private static LazySingleton instance = null;
构造函数设为private,这样不允许通过调用构造方法来实例化该类
private LazySingleton() {}
//synchronized保证线程安全
public static synchronized LazySingleton getInstance() {
if (instance == null) {
return new LazySingleton();
}
return instance;
}
}

4、饿汉式

饿汉式一旦加载就创建一个单例,保证在调用 getInstance 方法之前单例已经存在了

是否线程安全:线程安全,但是类加载时就初始化会浪费内存

效率:没有加锁,效率高

public class HungarySingleton {
private static HungarySingleton instance = new HungarySingleton();
HungarySingleton(){}
public static HungarySingleton getInstance() {
return instance;
}
}

最后

以上就是知性丝袜为你收集整理的设计模式之单例模式(创建型模式)1、介绍2、特点3、懒汉式4、饿汉式的全部内容,希望文章能够帮你解决设计模式之单例模式(创建型模式)1、介绍2、特点3、懒汉式4、饿汉式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部