浅谈单例设计模式

博客主要介绍开发中常用的设计模式,着重讲解单例模式。单例模式指只能创建一个实例,即便多用户系统登录后也如此。还给出Java代码简单演示,对比多例模式(每次调用创建新实例),并展示单例和多例模式不同的打印结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发中时不时,或者不知不觉中都会用到设计模式,今天很简单的说一下单例模式的实现。
单例模式:通俗的讲就是,只能有一个,只能创建一个实例,即使是有很多的用户的系统,登陆以后,也只能有一个实例化的该方法。下面是一个java代码的简单演示与实现。

多例的模式:每次调用都会创建一个新的实例
打印结果为:false

package SingleTon;

public class SingleTonTest {

    public static void main(String[] args) {
    
       SingleTon s1 = new SingleTon();
       SingleTon s2 =new SingleTon();

        System.out.println(s1 == s2);
    }

}
class SingleTon{

}

单例的实现模式:只会创建一个实例对象
打印结果为:true

package SingleTon;

public class SingleTonTest {

    public static void main(String[] args) {

       SingleTon s1 = SingleTon.getInstance();
       SingleTon s2 = SingleTon.getInstance();

        System.out.println(s1 == s2);
    }

}

class SingleTon{
    // 第三步 将生成的实例进行缓存
    private static SingleTon Instance = null;

    // 第一步 私有化构造器
    private SingleTon(){

    }

    // 第二步 提供对外的方法
    public static SingleTon getInstance(){

        // 为了防止 在多用户时候的并发问题,导致创建多个对象,采用加锁
        synchronized (SingleTon.class){
            if(Instance == null){
                    Instance = new SingleTon();
            }
        }

       return Instance;
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值