Java--单例模式

本文详细介绍了设计模式中的单例模式,包括其概念、应用场合和多种实现方法,如饿汉模式、懒汉模式、静态内部类、枚举以及双重校验锁,并讨论了各种实现的优缺点和线程安全性。
摘要由CSDN通过智能技术生成

前言

这里我要介绍的是设计模式中的单例模式,我会介绍设计模式,单例模式的概念和应用的场合。

接下来就是单例模式的这几种写法啦,饿汉,懒汉,静态内部类,枚举和双重校验锁。

设计模式

设计模式 (Design Pattern):是一套被反复是用,多数人知晓的,经过分类编目的,代码设计经验的总结.

目的:使用设计模式是为了可重用代码,让代码更容易被别人理解,保证代码可靠性.

设计模式有许多,这里就介绍最基本,也是最常用的单例模式。

单例模式

有些对象只需要一个,如:配置文件、工具类、线程池、缓存、日志对象等。

多个程序读取一个配置文件,实际上配置文件还是只有一个,如果创造出多个实例,就会导致很多问题,占用资源过多,不一致的结果等。

而要保证整个应用中只有一个实例,就要用单例模式来实现啦。

方法

首先我们先来创建一个 SingleTon 类:

/*
 * 单例模式 SingleTon
 * 应用场合:有些对象只需要一个就够了
 * 作用:保证整个应用程序中实例的个数有且只有一个
 */
public class Singleton {

}

饿汉模式

我们通常创建对象,是通过 new 构造方法来实例化,每次去实例化就是创建了一个新的对象,所以要想只实例化一次,就要从构造方法入手。

public class Singleton {

    //1.将构造方法私有化,不允许外部直接创建对象
    private Singleton() {
    }

    //2.创建类的唯一实例,使用private static修饰
    private static Singleton instance = new Singleton();

    //3.提供一个用于获取实例的方法,使用public static修饰
    public static Singleton getInstance() {
        return instance;
    }
}

从上面的代码可以清楚的知道,我们为了不频繁的创建 SingleTon 的实例,就将构造方法私有化,然后在类里创建一个静态的实例对象,最后通过类方法去获取这个对象。我们用 Test 类来测试一下每次获取的实例是不是同一个。

public 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值