首页 > 开发 > Java > 正文

java中设计模式(多例)的实例详解

2024-07-13 10:11:26
字体:
来源:转载
供稿:网友

javascript/48656.html">javascript/92522.html">java中设计模式(多例)的实例详解

多例:单例设计模式的变形,可以看成是一个缓存池的单例,而缓存池里面可以存多个数据

实例代码:

//单例+缓存---没有控制池大小public class A {  //1创建一个单例的池(private即把池封装成单例了)  private static Map<String, A> pool = new HashMap<String, A>(); //池--集合: Map:key-value  public synchronized static A getInstance(String key){    //2根据key到池中去获取obj    A obj = pool.get(key);    if(obj==null){      obj = new A();      pool.put(key, obj);    }    //3如果该obj存在则返回,否则创建一个新的放入池中并返回    return obj}}
import java.util.HashMap;import java.util.Map;//单例+缓存---控制池大小,每个对象的key值由该类内部指定public class A {  //1创建一个单例的池  private static Map<Integer, A> pool = new HashMap<Integer, A>(); //池--集合: Map:key-value  //当前对象的序号  private static int num=0;  //总数量  private static int MAX_SIZE=3;  public synchronized static A getInstance(){    //2根据num到池中去获取obj    A obj = pool.get(num);    if(obj==null){      obj = new A();      pool.put(num, obj);    }    num = (num+1)%MAX_SIZE; //范围: 0 ~ MAX_SIZE-1    //3如果该obj存在则返回,否则创建一个新的放入池中并返回    return obj;  }}

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表