Java中饿汉与懒汉的故事(单例设计模式)

发表于:2020-12-31 10:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:K&D    来源:CSDN

#
Java
分享:
  Java中的单例设计模式
  关于设计模式,这其实是单独存在的东西,它不属于java,但是在java中使用较多,所以今天我就给大家介绍下单例设计模式中的饿汉和懒汉这俩朴素的打工人。
  首先我先说明下单例设计模式是啥(如果不想了解,可以直接划下去看饿汉和懒汉):类的单例设计模式就是采用一定的方法保证在整个软件系统中,对某个类只能存在一个对象实例。(不懂也没关系,会用就好)
  一.饿汉式
  饿汉式:可以理解为饿的不行了,就提前把吃饭工具准备好(new对象),再进行“吃”的操作。
  用代码说话叭:
  class Family{
      private int number;
      private String name;
      private Family(){
      }        //构造器私有化
      private static Family Instance=new Family();  
      //内部创建类的对象
      public static Family getInstance(){
          return Instance;
      }
      //提供公共的静态方法,且返回对象。
  }
  public class Test3 {
      public static void main(String[] args) {
          Family family1=Family.getInstance();
          Family family2=Family.getInstance();
      }
  }
  二.懒汉式
  懒汉式:可以理解这人特懒,他只是洗下碗但是不准备,啥时候吃饭啥时候弄吃饭工具(new对象)。
  用代码说话叭:
  class lazy {
      private lazy(){
      }
      private static lazy Instance = null;
      //声明当前对象没有初始化值
      public static lazy getInstance(){
          if (Instance==null){
              Instance=new lazy();
              //需要再造对象,不要就不new对象了
          }
          return Instance;
      }
  }
  public class Test32 {
      public static void main(String[] args) {
         lazy lazy1=lazy.getInstance();
      }
  }
  三.饿汉和懒汉有啥不同
  ·对于饿汉式:
  优点:线程贼安全
  缺点:对象加载时间过长
  ·对于懒汉式:
  优点:延迟对象的创建,更快
  缺点:多线程安全贼低,但是可以通过优化使其可用。

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号