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

本文详细介绍了Java中的单例模式,包括其概念、实现方式(饿汉式与懒汉式),并通过实例验证了单例模式下对象的唯一性。

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

在JAVA中,有一种著名的设计模式,叫做单例模式,何为单例模式呢?简单的说法就是:该类的对象只有唯一一个,我们都知道,一般来说类的对象new出来后是不一样,而单例模式new出来的对象,完全还是那一个。打个比方,你的老婆叫小丽,那么你叫老婆的时候,指的就是小丽,而不是其他某些人。

那如何实现,有两种方法,一种叫饿汉式,一种叫懒汉式。

饿汉式就是直接把对象new出来,懒汉式是通过方法new出来。

eg:

饿汉式:

class SingleDemo{

private static SingleDemo s1 =new SingleDemo();//static修饰,随着类的加载而加载

private SingleDemo(){}//私有构造方法,外界就不能构造对象了

public static SingleDemo getS1(){

return s1;

}

}

懒汉式:

class SingleDemo2{

private static SingleDemo2 s2;

private SingleDemo2(){}//私有构造方法

public static SingleDemo2 getS2(){

if(s2==null){

s2 =new SingleDemo2();//和饿汉式相比,这个时候才构造对象

         }

return s2;

}

}

上述就是产生单利模式的对象方法。

验证:

class TestDemo{

public static void main(String[] args){

SingleDemo a =SingleDemo.getS1();//只能用方法产生对象

SingleDemo b =SingleDemo.getS1();

SingleDemo2 c =SingleDemo.getS2();

SingleDemo2 d =SingleDemo.getS2();

System.out.println(a==b);

System.out.println(c==d);

}

}

结果:true

  true

说明产生的对象是同一个,实现了上述要求。从代码分析,单例模式实现要点是:首先要使用static修饰类,并用private修饰构造方法,使其他类不能用new的方式产生对象,使用静态方法,产生对象。饿汉式和懒汉式的区别是:饿汉式是一开始就new了对象,在方法中直接返回了该对象。而懒汉式则是先判断是否有对象,如果没有再new对象。两者结果就是都产生了唯一一个对象。验证中用获取对象的方法获取多个对象,发现他们实际上是同一个。通俗的说法就是女皇帝的类的对象,不管获取多少次,都是武则天一样。也有点类似一夫一妻制,一个类一个对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值