您的位置:首页 > 编程语言 > Java开发

java设计模式(2/23)-多例模式(Multiton Pattern)

2017-03-14 20:36 316 查看
java创建型模式之二:
多例模式 (Multiton Pattern)

作为对象的创建模式,多例模式中的多例类可以有多个实例,而且多例类必须自己创建、管理自己的实例,并向外界提供自己的实例。多例模式实际上就是单例模式的自然推广。

PS:许有限个实例并向整个JVM提供自己实例的类叫做多例类,这种模式叫做多例模式

特点

(1)多例模式可以有多个实例;

(2)多例类必须自己创建、管理自己的实例,并向外界提供自己的实例,因此,他的构造函数也是private的,这点跟单例模式是相同的

(3)更具是否有上限分为:有上限多例类和无上限多例类。

(4)多例模式往往具有一个聚集属性,通过向这个聚集属性登记已经创建过的实例达到循环使用实例的目的

应用场景:JDBC连接池等。

 

实际例子

麻将中的骰子只有2个,所以骰子个数是确定的,符合多例模式的要求。

package com.pattern.multilingual;

import java.util.Date;
import java.util.Random;

public class Die {

//创建2个骰子实例
private static Die die1 = new Die();
private static Die die2 = new Die();

//私有构造子
private Die() {
}

//工厂方法
public static Die getInstance(int whichOne) {
if (which
4000
One == 1) {
return die1;
}
return die2;
}

//掷骰子
public synchronized int dice(){
Date d = new Date();
Random r = new Random(d.getTime());
int value = r.nextInt();
value = Math.abs(value)%6+1;
return value;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: