欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Java多例设计模式实例详解

程序员文章站 2023-12-12 14:37:10
本文实例讲述了java多例设计模式。分享给大家供大家参考,具体如下: 一、多例设计模式定义 多例设计模式就是存在多个对象实例,供外部应用裯用,比喻数据库连接池。 二、...

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

一、多例设计模式定义

多例设计模式就是存在多个对象实例,供外部应用裯用,比喻数据库连接池。

二、多例模式静态类图

Java多例设计模式实例详解

三、多例模式代码实现

1. 多例模式核心类

package com.demo.multipleton;
import java.util.arraylist;
/**
 * 多例模式
 *
 * @author
 *
 */
public class multipleton {
  // 多例数量
  private static final int n = 10;
  // 存放n个实例对象的容器
  private static arraylist<multipleton> list = new arraylist<multipleton>(n);
  // 每个对象的序号 标识
  private int no;
  // 私有构造方法 防止外界应用程序实例化
  private multipleton(int no) {
    this.no = no;
    system.out.println("-- create multipleton object[" + no + "]!");
  }
  // 实例化n个对象实例
  static {
    // 添加multipleton对象实例
    for (int i = 0; i < n; i++) {
      list.add(new multipleton(i));
    }
  }
  /**
   * 随机获得 实例对象
   */
  public static multipleton getrandominstance() {
    // 获得随机数字
    int num = (int) (math.random() * n);
    // 获得list中的对象实例
    return list.get(num);
  }
  public int getno() {
    return no;
  }
  public void setno(int no) {
    this.no = no;
  }
}

2. 多例模式客户端

package com.demo;
import com.demo.multipleton.multipleton;
/**
 * 客户端应用程序
 *
 * @author
 *
 */
public class multipletonclient {
  /**
   * @param args
   */
  public static void main(string[] args) {
    // 获得multipleton对象实例
    multipleton multipleton = multipleton.getrandominstance();
    system.out.println("multipleton:" + multipleton.getno());
    // 在次获得multipleton对象实例
    multipleton multipleton2 = multipleton.getrandominstance();
    system.out.println("multipleton2:" + multipleton2.getno());
    // 比较两个对象是否是同一个对象实例
    if (multipleton == multipleton2) {
      system.out.println("--这是同一个对象!");
    } else {
      system.out.println("--这是不同的对象!");
    }
  }
}

3. 运行结果

-- create multipleton object[0]!
-- create multipleton object[1]!
-- create multipleton object[2]!
-- create multipleton object[3]!
-- create multipleton object[4]!
-- create multipleton object[5]!
-- create multipleton object[6]!
-- create multipleton object[7]!
-- create multipleton object[8]!
-- create multipleton object[9]!
multipleton:2
multipleton2:2
--这是同一个对象!

4. 从上面程序运行结果,可以得出两个结论

① 实例化n个实例对象的过程只执行一次。

② 随机获得multipleton对象。

更多java相关内容感兴趣的读者可查看本站专题:《java面向对象程序设计入门与进阶教程》、《java数据结构与算法教程》、《java操作dom节点技巧总结》、《java文件与目录操作技巧汇总》和《java缓存操作技巧汇总

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

上一篇:

下一篇: