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;
}
}
多例模式 (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;
}
}
相关文章推荐
- JAVA 23设计模式一点就通
- java中的23中设计模式
- 设计模式-多例模式(Multiton Pattern)
- 浅谈 java 设计模式--装饰模式(Decorator pattern)
- 浅谈 java 设计模式--代理模式(Proxy pattern)
- JAVA 23设计模式一点就通
- java23中设计模式级解释代码
- 浅谈 java 设计模式--构建模式(Builder pattern)
- 设计模式---策略模式(Strategy Pattern with java)
- 浅谈 java 设计模式--观察者模式(Observer pattern)
- .NET设计模式(23): 职责链模式(Chain of Responsibility Pattern)
- Java设计模式—观察者模式(Observer pattern)
- Java设计模式 Design Pattern:命令模式 Command Pattern
- 浅谈 java 设计模式--抽象工厂模式(AbstractFactory pattern)
- java设计模式学习4--Builder Pattern[原创]
- java中的23中设计模式
- java中的23中设计模式
- java 开发中的23中设计模式
- 浅谈 java 设计模式--命令行模式(Command pattern)
- 浅谈 java 设计模式--适配器模式(Adaptor pattern)