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

发布时间 - 2026-01-11 03:21:12    点击率:

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  # 多例  # 多例的实例详解  # 多例的设计模式  # Java设计模式之装饰者模式详解和代码实例  # Java设计模式之工厂模式(Factory模式)介绍  # Java设计模式之模板模式(Template模式)介绍  # Java设计模式之责任链模式(Chain of Responsibility模式)介绍  # Java设计模式之Iterator模式介绍  # Java设计模式之状态模式(State模式)介绍  # java设计模式之建造者模式学习  # java设计模式之单例模式学习  # 对比Java设计模式编程中的状态模式和策略模式  # Java多例设计模式实例详解  # 创建一个  # 池中  # 是一个  # 多个  # 如有  # 希望能  # 谢谢大家  # 即把  # 疑问请  # private  # 成单例  # static  # lt  # Map  # strong  # pre  # public  # brush 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用PHP快速搭建CMS系统?  米侠浏览器网页图片不显示怎么办 米侠图片加载修复  详解阿里云nginx服务器多站点的配置  魔方云NAT建站如何实现端口转发?  Laravel如何使用Gate和Policy进行权限控制_Laravel权限判定与策略规则配置  免费网站制作appp,免费制作app哪个平台好?  Windows Hello人脸识别突然无法使用  Python文件异常处理策略_健壮性说明【指导】  韩国服务器如何优化跨境访问实现高效连接?  今日头条微视频如何找选题 今日头条微视频找选题技巧【指南】  Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优  bootstrap日历插件datetimepicker使用方法  Android GridView 滑动条设置一直显示状态(推荐)  Laravel怎么连接多个数据库_Laravel多数据库连接配置  javascript中闭包概念与用法深入理解  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  Laravel storage目录权限问题_Laravel文件写入权限设置  详解jQuery中基本的动画方法  如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  EditPlus中的正则表达式实战(5)  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  googleplay官方入口在哪里_Google Play官方商店快速入口指南  Python文件操作最佳实践_稳定性说明【指导】  Laravel如何与Docker(Sail)协同开发?(环境搭建教程)  如何快速查询域名建站关键信息?  Laravel怎么配置.env环境变量_Laravel生产环境敏感数据保护与读取【方法】  JS经典正则表达式笔试题汇总  如何用AWS免费套餐快速搭建高效网站?  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  微信小程序 wx.uploadFile无法上传解决办法  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧  Laravel怎么为数据库表字段添加索引以优化查询  深圳网站制作培训,深圳哪些招聘网站比较好?  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  如何快速完成中国万网建站详细流程?  如何在宝塔面板中创建新站点?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  Laravel如何使用withoutEvents方法临时禁用模型事件  PythonWeb开发入门教程_Flask快速构建Web应用  Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  JS去除重复并统计数量的实现方法  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  如何在香港免费服务器上快速搭建网站?  如何在云指建站中生成FTP站点?  php json中文编码为null的解决办法