单例设计模式(基础学习)

单例设计模式(基础学习,待补充。。。)

​ 单例模式:采用一定的方法,保证在整个软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得该对象实例的方法。

​ 单例模式有两种方式:①饿汉式②懒汉式

单例模式概述

单例模式也称之为单态模式,单子模式等;指的是在程序运行的过程中始终只存在一个对象(实例)。单例模式的表现形式又分为两种:

  1. 懒汉式(需要的时候才创建:以时间换空间的概念)
  2. 饿汉式(类加载即创建:以空间换时间的概念)
单例模式实现步骤:

​ 1、构造器私有化private #{构造器名} {}

​ 2、类的内部创建对象

​ 3、向外暴露一个静态的公共方法 static getInstance

懒汉式

懒汉式即需要实例对象时才创建:存在线程安全问题

/**
 * 	单例模式 - 懒汉式(需要时才创建)
 */
public class Singleton {

	private static Singleton instance; //15db9742
	
	//构造器私有化,不允许外界随意访问(不允许随便创建对象)
	private Singleton() {}
	
	public static Singleton newInstance() {
		if(instance == null) {
			instance = new Singleton();
		}
		return instance;
	}
	
}

饿汉式

饿汉式即类加载时就创建实例对象。如果类中存在静态属性,调用静态属性时,会进行类加载,同时创建实例对象,存在资源浪费问题

/**
 * 	单例模式-饿汉式(类加载即创建对象) 
 */
public class Singleton2 {
    // 直接调用该静态类,也会实例化Singleton2这个类,
    public static int num = 10;

	private static Singleton2 instance = new Singleton2();
	
	private Singleton2() {
	
	public static Singleton2 newInstance() {
		return instance;
	}
}

应用场景

​ 单例模式的使用场景十分广泛,比如:数据库连接池,字符串常量池,线程池等资源池,比如日历类,Runtime类等常见与系统环境交互相关的类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值