利用单例模式创建指定的对象
2018-04-10 15:40
246 查看
import java.util.HashMap;
import java.util.Map;
/**
* 利用单例模式返回指定的多个对象
*
* */
public class Singleton4 {
//定义在缓存中的key值
private static final String DEFAULT_KEY="param";
//定义初始变量
private static int num=1;
//定义最大的对象数量
private static final int MAX_NUM=3;
//定义map缓存
private static Map<String, Singleton4> catche=new HashMap<String,Singleton4>();
private Singleton4() {}
public static Singleton4 getInstance() {
//定义每个map的key值
String key=DEFAULT_KEY+num;
//从缓存中取值
Singleton4 sing=catche.get(key);
//如果缓存中没有值创建对象
if(sing==null) {
sing=new Singleton4();
catche.put(key, sing);
}
//轮流调用到三个对象后又重新从缓存第一个调用
num++;
if(num>MAX_NUM) {
num=1;
}
return sing;
}
//测试
public static void main(String args[]) {
for(int i=1; i<=9;i++) {
Singleton4 t1=Singleton4.getInstance();
System.out.println("第"+i+"次调用对象==========="+t1);
}
}
}
import java.util.Map;
/**
* 利用单例模式返回指定的多个对象
*
* */
public class Singleton4 {
//定义在缓存中的key值
private static final String DEFAULT_KEY="param";
//定义初始变量
private static int num=1;
//定义最大的对象数量
private static final int MAX_NUM=3;
//定义map缓存
private static Map<String, Singleton4> catche=new HashMap<String,Singleton4>();
private Singleton4() {}
public static Singleton4 getInstance() {
//定义每个map的key值
String key=DEFAULT_KEY+num;
//从缓存中取值
Singleton4 sing=catche.get(key);
//如果缓存中没有值创建对象
if(sing==null) {
sing=new Singleton4();
catche.put(key, sing);
}
//轮流调用到三个对象后又重新从缓存第一个调用
num++;
if(num>MAX_NUM) {
num=1;
}
return sing;
}
//测试
public static void main(String args[]) {
for(int i=1; i<=9;i++) {
Singleton4 t1=Singleton4.getInstance();
System.out.println("第"+i+"次调用对象==========="+t1);
}
}
}
相关文章推荐
- 自己在项目中的学习总结:利用工厂模式+反射机制+缓存机制,实现动态创建不同的数据层对象接口
- Unity3D——利用单例创建并永久化游戏对象(单例模式的应用)
- 类里边的构造函数可以被private修饰,在类的内部创建对象。利用这种特性创建单类模式
- js中利用函数创建对象的5种模式
- JavaScript强化教程 —— 对象创建模式
- Objective-C设计模式——原型Prototype(对象创建)
- 建造者模式-Builder Pattern 复杂对象的组装与创建——建造者模式(三):关于Director的进一步讨论,建造者模式总结
- 浅谈 JS 创建对象的 8 种模式【转】
- 利用反射动态创建对象
- 浅谈 JS 创建对象的 8 种模式
- iOS完全自学手册——[三]Objective-C语言速成,利用Objective-C创建自己的对象
- php单例模式实现对象只被创建一次
- 利用反射动态创建对象
- 反射创建对象,执行指定方法
- JavaScript创建对象的几种模式
- 利用反射创建对象
- 对象的创建:工厂模式/构造函数模式/原型模式 (笔记)
- 深入理解JavaScript系列(47):对象创建模式(上篇)
- kettle利用参数遍历执行指定目录下的所有对象
- 深入理解JavaScript系列(48):对象创建模式(下篇)