当前位置:首页 > 编程教程 > java技术文章 > Java单例模式和多例模式实例分析

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

  • 发布时间:
  • 作者:码农之家
  • 点击:71

这篇文章主要知识点是关于Java、单例模式、多例模式、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Java核心技术卷II:高级特性
  • 类型:Java大小:195.7 MB格式:PDF作者:霍斯特曼
立即下载

Tags:Java 单例模式 多例模式 

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的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

Java 相关电子书
学习笔记
网友NO.504055

Java设计者模式简单工厂模式解析

简介 简单工厂模式 (Simple Factory) 又叫静态工厂方法(Static Factory Method)模式。 简单工厂模式通常是定义一个工厂类,这个类可以 根据不同变量返回不同类的产品实例 。 简单工厂模式是一种 对象创建型模式 但是简单工厂模式 不属于 23种Gof设计模式之一。 实例 如何实现一个具有加减乘除基本功能的计算器? 对于这四种运算来说,都需要两个操作数,差别仅在于返回的结果不同。 由此,我们可以抽象化它们的共性,提炼出一个父类。这个类中包含两个操作数,一个返回结果方法,这个方法期望在子类中得以实现。 以下通过具体代码来说明。 Product (Operation) : 产品角色,简单工厂模式所创建的所有对象的父类,它负责描述 所有实例所共有的公共接口 。 // Product角色,所有实例所共有的公共接口abstract class Operation { public int numA; public int numB; public abst……

网友NO.565181

JavaScript事件发布/订阅模式原理与用法分析

本文实例讲述了JavaScript事件发布/订阅模式原理与用法。分享给大家供大家参考,具体如下: 1、发布/订阅模式也是诸多设计模式当中的一种; 2、这种方式可以在es5下相当优雅地处理异步操作; 3、什么是发布/订阅呢?我们举个栗子: 假设fn1,fn2,fn3都可以视作一个事件的发布者,执行它,就会发布一个事件。这个时候,我们可以通过一个事件的订阅者去批量订阅并处理这些事件,包括它们的先后顺序。增加一个消息订阅者的方法: class AsyncFunArr { constructor (...arr) { this.funcArr = [...arr] } next () { const fn = this.funcArr.shift() if (typeof fn === 'function') fn() } run () { this.next() }} 4、调用 //首先将fn1,fn2,fn3订阅const asyncFunArr = new AsyncFunArr(fn1, fn2, fn3)//fn1,fn2,fn3作为分布者分别调用其next()方法:function fn1 () { console.log('Function 1') asyncFunArr.next()}function fn2 () { setTimeout(() = {……

网友NO.552085

23种设计模式(21)java享元模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述享元(Flyweight)模式的: Flyweight在拳击比赛中指最轻量级,即“蝇量级”或“雨量级”,这里选择使用“享元模式”的意译,是因为这样更能反映模式的用意。享元模式是对象的结构模式。享元模式以共享的方式高效地支持大量的细粒度对象。 Java中的String类型 在JAVA语言中,String类型就是使用了享元模式。String对象是final类型,对象一旦创建就不可改变。在JAVA中字符串常量都是存在常量池中的,JAVA会确保一个字符串常量在常量池中只有一个拷贝。String a="abc",其中"abc"就是一个字符串常量。 public class Test { public static void main(String[] args) { String a = "abc"; String b = "abc"; System.out.println(a==b); }} 上面的例子中结果为:true ,这就说明a和b两个引用都指向了常量池中的同一个字符串常量"abc"。这样的设计避免了在……

网友NO.826149

Java设计模式之监听器模式实例详解

本文实例讲述了Java设计模式之监听器模式。分享给大家供大家参考,具体如下: 监听器模式有三个要素——事件源、事件对象、监听器。 事件源 :顾名思义,事件发生的源头,比如点击的按钮,属于被监听的对象; 事件对象 :这个经常和事件源混淆,它经常被用来包装事件源,切记,它毕竟是个事件,比如点击事件,和事件源的区别自己感受,木有栗子; 监听器 :这个是监听器模式的核心,定义事件发生后的动作,通常事件对象作为监听器中定义的函数入参。 下面举个简单的栗子: 故事背景是,小明是个不讲卫生的孩子,他妈妈很担心他的健康,规定必须饭前洗手。 定义一个熊孩子。熊孩子就是被监听的对象,是事件源,一切事件都是事件源发出,这似乎是句废话。 public class Child { private String name; private RemindListener remindListener; public Child(Str……

<
1
>

电子书 编程教程 PC软件下载 安卓软件下载

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757