单列设计模式

3、单例设计模式

  • 设计模式介绍:

    • 在软件开发中经常会遇到一些问题,这些问题如何解决,前人总结了一些好的方法,这些方法就称之为设计模式。

    • 用设计模式去解决这些问题,可以使代码的安全性、重用性、扩展性更强。

    • 简单来说:就是一套好的编码风格,前人总结出的一种套路

  • 单例设计模式介绍:

    • 保证类的对象在内存中,只有一个对象

    • 举例:

      • Windows任务管理器

      • 回收站

      • 网站的计数器对象

饿汉式 :

  1. 私有化构造方法

  2. 定义一个 public static final 修饰的常量,常量值就是对象

  3. 在外界直接调用这个常量

写法一:
  1. 私有化构造方法

  2. 定义一个 public static final 修饰的常量,常量值就是对象

  3. 在外界直接调用这个常量即可

public class Single {
   //1.私有化构造方法 --- 不让别人创建对象
   private Single(){}
   
   // 非常饿, 上来就要吃, 上来不看任何条件, 直接创建对象

   //2.在本类中,自己创建对象
   public static final Single s = new Single();
}
写法二:
  1. 私有化构造方法

  2. 定义一个 private static final 修饰的常量,常量值就是对象

  3. 再定义一个getInstance方法

  4. 在外界直接调用方法即可

代码示例:

public class Single {
   //1.私有化构造方法 --- 不让别人创建对象
   private Single(){}

  //把这个变量定义为私有
   private static final Single s = new Single();

   public static Single getInstance() {
       return s;
  }
}

懒汉式 :

写法一:
  • 弊端 : 多线程操作的时候, 很有可能会出创建多个对象

public class Single {
   
   private Single(){}

   // 懒汉式
   // 核心:延迟加载
   private static Single s;

   public static Single getInstance() {  
       if(s == null){
           s = new Single();
      }
       return s ;
  }
}
写法二:
  • 弊端 : 效率低

public class Single {

   private Single(){}

   private static Single s ;

   public static Single getInstance() {  

       synchronized (Single.class) {
       
            if(s == null){
     
                   s = new Single();
              }
          }
      }
       return s ;
  }
}
写法三 :

 

posted @   灵泽pro  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示