1 单例模式(设计模式笔记)

1 单例模式

概述:使得一个类的对象成为系统中的唯一实例。

具体实现:

构造函数私有化

限制实例的个数

  • 懒汉式(时间换空间)

    • public class Singleton2 {
      	public static Singleton2 singleton2;
      
          	private Singleton2(){}
      
          	public static Singleton2 getInstance() throws InterruptedException {
              	if(singleton2==null){
                 	 singleton2 = new Singleton2();
             	 }
             	 return singleton2;
         	 }
      }    
      
    • 存在线程安全问题(可以线程锁解决)

  • 饿汉式(空间换时间)

    • public class Singleton1 {
      
          public static Singleton1 singleton1 = new Singleton1();
      
          private Singleton1(){}
      
          public static Singleton1 getSingleton1(){
              return singleton1;
          }
      
      }
      
    • 静态内部类实现(推荐)

      • public class Singleton {
            private Singleton() {}
        
            public static class SingletonInstance{
                private static final Singleton INSTANCE = new Singleton();
            }
        
            public static Singleton getInstance(){
                return SingletonInstance.INSTANCE;
            }
        }
        

优缺点:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值