Java设计模式-单例设计模式

文章目录

  • 前言
  • 一、什么是设计模式?
  • 二、单例模式介绍
    • 1.单例模式的目的
    • 2.单例模式的定义
    • 单例模式的设计与实现要点:
    • 3.单例模式的两种实现方式
      • (一)饿汉式创建
      • (二)懒汉式创建
    • 4.单例模式的优缺点
  • 总结


前言

本文主要介绍Java常用设计模式中的单例设计模式


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是设计模式?

设计模式是基于某种问题场景的一种解决方案,常用的设计模式一般有有23种,分为创建型设计模式,结构型设计模式,行为型设计模式等。

二、单例模式介绍

1.单例模式的目的

单例模式是目的是为了使得类的对象成为该类系统中的唯一实例。

2.单例模式的定义

一个类有且仅有一个实例,并且自行实例化向整个系统提供。

单例模式的设计与实现要点:

设计

  • 一个类只能有一个实例
  • 必须自行创建实例
  • 必须自行向整个系统提供这个实例

实现

  • 只提供私有的构造方法
  • 含有一个该类的静态私有对象
  • 提供一个静态的公有方法用于创建获取静态私有对象

3.单例模式的两种实现方式

(一)饿汉式创建

饿汉就是类一旦加载,就把单例初始化完成。
代码实现:

public class HungrySingleton {
	// 1.提供私有构造方法
	private HungrySingleton() {

	}

	// 2.提供静态私有该类型实例变量
	private static HungrySingleton instance = new HungrySingleton();

	// 3.提供公有静态方法返回该类型静态实例;
	public HungrySingleton getInstance() {
		return instance;
	}
}


(二)懒汉式创建

懒汉比较懒,只有当调用getInstance的时候,才实例化对象。
代码实现:

public class LazySingleton {
	// 1.提供私有构造方法
	private LazySingleton() {

	}

	// 2.提供静态私有该类型实例变量
	private static LazySingleton instance;

	// 3.提供公有静态方法返回该类型静态实例;
	public LazySingleton getInstance() {
		if (instance == null) {
			instance = new LazySingleton();
		}
		return instance;
	}
}

4.单例模式的优缺点

优点:

  • 在内存中只有一个对象,节省内存空间。

  • 避免频繁的创建销毁对象,提高性能。

  • 避免对共享资源的多种占用。
    缺点:

  • 拓展性不好

  • 创建后长期不使用,容易被垃圾回收器回收,造成对象状态丢失。


总结

本文主要介绍Java常用设计模式中的单例设计模式以及它的实现代码

你可能感兴趣的:(Java,Java基础,设计模式,java)