本文实例讲述了java多例设计模式。分享给大家供大家参考,具体如下:
一、多例设计模式定义
多例设计模式就是存在多个对象实例,供外部应用裯用,比喻数据库连接池。
二、多例模式静态类图
三、多例模式代码实现
1. 多例模式核心类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
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. 多例模式客户端
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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程序设计有所帮助。
原文链接:https://blog.csdn.net/chengqiuming/article/details/70140534