当前位置:主页 > java教程 > Java单例模式和多例模式实例分析

Java单例模式和多例模式的知识点讲解

发布:2020-03-08 21:09:28 71


本站精选了一篇Java相关的编程文章,网友崔承志根据主题投稿了本篇教程内容,涉及到Java、单例模式、多例模式、Java单例模式和多例模式实例分析相关内容,已被193网友关注,内容中涉及的知识点可以在下方直接下载获取。

Java单例模式和多例模式实例分析

本文实例讲述了Java单例模式和多例模式。分享给大家供大家参考,具体如下:

一 单例模式

1 代码

class Boss
{
  private static Boss instance;// 静态成员变量,用来保存唯一创建的对象实例
  private Boss ()
  {
    // 利用私有化构造方法,阻止外部创建对象
  }
  public static Boss findBoss() //检查并确保只有一个实例
  {
    if (instance == null)
    {
      System.out.println("当前没有老板,马上指派一个!");
      instance = new Boss();
    } else {
      System.out.println("已经有老板了!直接来汇报吧。");
    }
    return instance;
  }
}
public class Singleton
{
  public static void main(String[] args)
  {
    Boss boss1 = null; // 声明对象boss1
    Boss boss2 = null; // 声明对象boss2
    boss1 = Boss.findBoss();//实例化对象
    boss2 = Boss.findBoss();//实例化对象
  }
}

2 运行

当前没有老板,马上指派一个!
已经有老板了!直接来汇报吧。

二 多例模式

1 代码

// 枚举类
enum Sex {
  男性, 女性
};
class sexClass {
  private String title; // 保存信息
  private static final sexClass MALE = new sexClass("男");
  private static final sexClass FEMALE = new sexClass("女");
  private sexClass( String title ) //私有构造方法
  {
    this.title = "创造的对象性别为: " + title;
    System.out.println("构造函数"+title);
  }
  public static sexClass getInstance( Sex sex )//static方法
  {
    switch (sex) {
      case 男性:
        return MALE;
      case 女性:
        return FEMALE;
      default:
        return null;
    }
  }
  @Override
  public String toString() {
    return this.title;
  }
}
public class TestMultiton {
  public static void main( String args[] ) {
    System.out.println(sexClass.getInstance(Sex.男性)); // 如果把这句也注释上,则输出结果为空,体现出赖加载(用时才加载该类)
    //System.out.println(sexClass.getInstance(Sex.女性));
  }
}

2 运行

构造函数男
构造函数女
创造的对象性别为: 男

3 说明

多例设计模式,实际就是“单例设计模式”的扩展版。设计思想和实现步骤都非常类似。

希望本文所述对大家java程序设计有所帮助。


参考资料

相关文章

  • Java中Collections.emptyList()的注意事项

    发布:2022-10-19

    给大家整理了关于Java的教程,这篇文章主要给大家介绍了关于Java中Collections.emptyList()的注意事项,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • java怎么输出数组

    发布:2019-06-28

    java数组作为方法参数,java怎么输出数组元素,数组的输出方式有哪些?


  • Java使用IOC控制反转的设计模式

    发布:2020-07-24

    这篇文章主要为大家详细介绍了Java使用IOC控制反转的三种设计模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • Java中出现java.lang.IllegalStateException异常错误的解决

    发布:2023-03-03

    这篇文章主要介绍了Java中出现java.lang.IllegalStateException异常错误的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • JavaScript图片处理与合成详解

    发布:2020-03-09

    这篇文章主要介绍了JavaScript图片处理与合成的相关知识点以及相关实例代码分析,有兴趣的朋友学习下。


  • Java输入输出流代码实例用法

    发布:2019-09-02

    这篇文章主要介绍了Java输入输出流,结合实例形式详细分析了Java常见的输入输出常用操作技巧与相关注意事项,需要的朋友可以参考下


  • Java结构型模式之桥接模式详解

    发布:2023-03-29

    桥接模式是一种很实用的结构型模式,如果系统中某个类存在两个独立变化的维度,通过桥接模式将这两个维度分离出来,使两者可以独立扩展


  • Java实现全图背景水印的示例详解

    发布:2023-04-08

    这篇文章主要为大家详细介绍了如何利用Java实现全图背景水印的方法,文中的示例代码讲解详细,具有一定的借鉴价值,需要的可以参考一下


网友讨论