Java软件设计模式------单例设计模式

本文深入探讨了Java软件设计中的单例模式,包括其概念、作用及实现方式。介绍了单例模式的两种常见形式:饿汉式和懒汉式,并通过代码示例展示了如何在实际应用中创建和使用单例对象。

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

Java软件设计模式一共分为23种;

一般常用的有:

  单例设计模式

  装饰设计模式

  工厂设计模式

单例设计模式(以后的用处:spring框架IOC,默认创建的对象都是单例的):

  单例模式是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例类的特殊类。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。

单例设计模式分为两种(饿汉式和懒汉式):

①饿汉式(常用):

特点:只创建一个对象,返回该对象供使用,不能在其它类里实例化。

 

public class SingleClass {

private SingleClass(){} //私有化构造方法 不能new对象
private static final SingleClass s=new SingleClass();
//创建一个返回本类对象的方法
public static SingleClass getInstance(){
return s;
}
}


②懒汉式:

特点:先不创建对象,用if条件判断,如果没有这个对象才会创建。


public class LazySingleClass {
private LazySingleClass(){}  //私有化构造方法
private static LazySingleClass lsc=null;
//同步代码块
public synchronized static LazySingleClass getInstance(){
if(lsc==null)
lsc= new LazySingleClass();
return lsc;
}
}

我们可以创建一个测试类

 

public class Test {
public static void main(String[] args) {
//(接收返回值Ctrl+1 点击new local variable)
//饿汉式
SingleClass s1 = SingleClass.getInstance();
SingleClass s2 = SingleClass.getInstance();

//比较s1和s2是否为同一个对象

System.out.println("饿汉式:"+s1.equals(s2));

//懒汉式--------------
LazySingleClass l1=LazySingleClass.getInstance();
LazySingleClass l2=LazySingleClass.getInstance();

//比较l1和l2是否为同一个对象
System.out.println("懒汉式:"+l1.equals(l2));
}
}

这时候我们可以看到控制台输出结果为:

饿汉式:true
懒汉式:true

结论:通过单例模式可以保证系统中一个类只有一个实例。

 

转载于:https://www.cnblogs.com/wxbblogs/p/6821420.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值