【面试常问】说一下你对单例模式的理解

本文探讨了设计模式的重要性和应用场景,特别聚焦于单例模式。单例模式确保一个类只有一个实例,并提供了全局访问点。它具有私有构造函数、静态变量和静态获取实例的方法等特点。文章介绍了两种实现方式:饿汉式(类加载时即创建实例)和懒汉式(首次调用时创建实例)。通过对单例模式的解析,有助于开发者在实际项目中更好地应用和理解设计模式。

说一下你对单例模式的理解

      设计模式在开发中是重中之重,尤其是单例模式,因此也就成了面试中的高频问题,决定整理一下;如有错误还请个位指正!

什么是设计模式

在说单例模式前我们先说说什么是设计模式;

      所谓设计模式,就是一套被反复使用的代码设计经验的总结(情境中一个问题经过证实的一个解决方案)。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式使人们可以更加简单方便的复用成功的设计和体系结构;

设计模式分为三大类:

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、
原型模式;

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模
式、组合模式、享元模式;

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、
责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解
释器模式;

单例模式

单例就是该类只能返回一个实例;

单例所具备的特点

  1. 私有化的构造函数
  2. 私有的静态的全局变量
  3. 公有的静态的方法

单例实现的主要步骤

  1. 将该类的构造方法定义为私有方法,(私有化构造器)这样其他处的代码就无法通过调用该类的构造方法来实例化该类的对象,只有通过该类提供的静态方法来得到该类的唯一实例;
  2. 在该类内提供一个公共静态返回该类实例对象的⽅法,当我们调用这个方法时,如果类持有的引用不为空就返回这个引用,如果类保持的引用为空就创建该类的实例并将实例的引用赋予该类保持的引用;

饿汉式

先初始化对象,Single类⼀进内存,就已经创建好了对象;

public class Single{
    //直接创建对象
    private static Single s=new Single();
    //私有化构造函数
    private Single(){}
    //返回对象实例
    public static Single getInstance()
    {
        return s;
    }
}

懒汉式

对象是⽅法被调⽤时才初始化,也叫做对象的延时加载;

  • Single类进内存,对象还没存在,只有调⽤了getInstance⽅法时,才建⽴对象
public class Single{
    //声明变量
    private static Single s=null;
    //私有构造函数
    private Single(){}
    //提供对外方法
    public static synchronize Single getInstance()
    {
        if(s==null){
            s=new single();
        }
        return s;
    }
}
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Willing卡卡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值