Java中的单例设计模式

单例设计模式的概念

在某些特殊场合,一个类对外只提供一个对象时,这样的类叫做单例类,而设计单例类的思想叫做单例设计模式

单例设计模式具体举例(经典套路),分为饿汉式和懒汉式

1.饿汉式 (一上来就创建对象)

public class Singleton {
 
//1.私有化构造方法,使用private关键字修饰
private Singleton (){}
//2.声明本类类型的引用指向本类类型的对象
Singleton singleton = new Singleton();
// 使用private 修饰的原因:将对象私有,保证在类外不能直接调用singleton
// 不用static修饰会报错的原因:在静态方法中只能访问静态成员不能访问非静态成员
//3.提供公有的get方法负责将上述对象返回出去
public static Singleton get(){ 
//用static修饰方法名,将方法提升为类层级,这样在main方法中直接用类名.的方式调用
    return singleton;
  }
}

2.懒汉式(一开始先不创建对象,等到需要时再创建)

public class Singleton {
 //1.私有化构造方法,使用private关键字修饰
private Singleton () {}
//2.声明本类类型的引用指向本类类型的对象
 private static Singleton singleton = null;
//3.用公有的set方法将获取到的对象返回出去
public static Singleton get(){
 if(null==singleton){
  singleton = new Singleton();
 }else
  return singleton ;
 }
}

main测试类中的具体实现

public class SingletonTest {
    public static void main(String[] args) {
    
        Singleton singleton3=Singleton.get();//用类名.来调get方法,因此来获得类里面的对象
        Singleton singleton4=Singleton.get();
        System.out.println(singleton3==singleton4);
  }
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值