Java常用的设计模式09:单例模式的强化(控制实例个数n)

1. 单例模式的本质:

控制实例数目(目的节约资源)

2. 单例模式体现的一些思想:

(1)延迟装载(Lazy Load):懒汉式

(2)缓存:饿汉式

3. 单例模式的变形使用:

控制使用实例个数为3个(实例池):

 1 public class Person {
 2     //定义用来缓存数据的容器
 3     private static Map  map = new HashMap();
 4     //用来记录当前正在使用哪一个实例,初始化值为1
 5     private static int  num = 1;
 6     //用来记录需要控制的实例的总数为3个
 7     private static int count = 3;
 8
 9     //私有化Person构造方法
10     private Person() {}
11     public static Person getInstance() {
12         //1.到缓存里面查找需要使用的数据
13         Person person = (Person)map.get(num);
14         //1.1 如果找不到
15         if(person == null) {
16             //就新建一个数据(或者获取一个数据)
17             person = new Person();
18             //然后把新的数据设置回到缓存中
19             map.put(num,person);
20         }
21         //每一次调用,就设置num加1;
22         num++;
23         //如果num超过需要控制的总数,那么把num设置为1,开始重复循环使用
24         if(num > count) {
25             num = 1;
26         }
27         //1.2 如果找到了就直接使用
28         return person;
29     }
30 }

 

时间: 2024-10-12 21:45:45

Java常用的设计模式09:单例模式的强化(控制实例个数n)的相关文章

最常用的设计模式(单例模式)

记得刚开始涉足程序的时候, 去笔试 ,发现有一个笔试题经常粗线,写一个单例模式的基本实现, 当时没研究设计模式也就不知为何物, 到今日  , 才发现它已成为我日常开发最常用的一种设计模式. 我写的所有设计模式的代码都会用java 呈现, 虽然第一个学习的是c++但是 最开始作为工作的是java,并且有点偏好java 单例模式 , 意思就是 整个系统仅只有此类的一个实力, 当然这只是狭义的单例,经常看到变种的单例是允许,创建指定数量的实例的 单例模式是一种创建型模式. 它是优化的一种策划, 避免重

面试准备之Java常用的设计模式

Java中常用的设计模式 1.单例模式 我所理解的单例模式:整个程序中只允许有唯一的一个对象(这个类只能实例化一次) 看看我找到的解释:当一个类只能有一个对象时,往往会用到单例模式,例如,现实生活中有很多临界资源,像 打印机.处理器(单核).皇帝.太子等等,它们都是稀有资源,只能有一个实例对象 一句话总结:一个类在Java虚拟机中只有一个对象,并提供一个全局访问点. 生活中例子:太阳.月亮.国家主席等. 解决什么问题:对象的唯一性,性能浪费太多. 项目里面怎么用:数据库连接对象,属性配置文件的读

Java常用的设计模式03:常用设计模式之单例模式

1.java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例.饿汉式单例.登记式单例三种. 单例模式有一下特点: 1.单例类只能有一个实例. 2.单例类必须自己自己创建自己的唯一实例. 3.单例类必须给所有其他对象提供这一实例. 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例.在计算机系统中,线程池.缓存.日志对象.对话框.打印机.显卡的驱动程序对象常被设计成单例.这些应用都或多或少具有资源管理器的功能.每台计算机可以有若干个打印机,但只能有一个Printer

Java常用的设计模式及工厂模式介绍

j2ee常用的设计模式?说明工厂模式. 总共23种,分为三大类:创建型,结构型,行为型 我只记得其中常用的6.7种,分别是: 创建型(工厂.工厂方法.抽象工厂.单例) 结构型(包装.适配器,组合,代理) 行为(观察者,模版,策略) 然后再针对你熟悉的模式谈谈你的理解即可. Java中的23种设计模式: Factory(工厂模式),      Builder(建造模式),       Factory Method(工厂方法模式), Prototype(原始模型模式),Singleton(单例模式)

java 常用十种设计模式示例归纳 | 已打包请带走

设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结. GitHub地址DesignPattern 文章说明一个Demo,集合常用的十种设计模式,每个模式使用易被人们接受的案例讲述,按模式分包,使用设计模式前后对比,界面显示定义讲解,让你更深刻的了解每种设计模式.大部分案例来自张鸿洋的博客.如有错误欢迎指正,如有侵权,请联系我删除. 项目结构 包结构.png设计模式分为三种类型,共23种:创建型模式:单例模式.抽象工厂模式.建造者模式.工厂模

java 23 - 2 设计模式之单例模式

单例模式:保证类在内存中只有一个对象. 如何保证类在内存中只有一个对象呢?  A:把构造方法私有  B:在成员位置自己创建一个对象  C:通过一个公共的方法提供访问 单例模式之饿汉式: (一进来就造对象,一回家就吃饭,饿..) 1 public class Student { 2 // A:把构造方法私有 3 private Student() { 4 } 5 6 // 在成员位置自己创建一个对象 7 // 静态方法只能访问静态成员变量,加静态 8 // 为了不让外界直接访问修改这个值,加pri

java常用的设计模式

设计模式:一个程序员对设计模式的理解:"不懂"为什么要把很简单的东西搞得那么复杂.后来随着软件开发经验的增加才开始明白我所看到的"复杂"恰恰就是设计模式的精髓所在,我所理解的"简单"就是一把钥匙开一把锁的模式,目的仅仅是着眼于解决现在的问题,而设计模式的"复杂"就在于它是要构造一个"万能钥匙",目的是提出一种对所有锁的开锁方案.在真正理解设计模式之前我一直在编写"简单"的代码.这个&qu

Java进阶篇设计模式之一 ----- 单例模式

前言 在刚学编程没多久就听说过设计模式的大名,不过由于当时还是个彻彻底底的菜鸟,并没有去触碰.直到在开始工作中对简单的业务代码较为熟悉之后,才正式的接触设计模式.当时最早接触的设计模式是工厂模式,不过本文讲的是单例模式,这里就留着下篇文章中在讲解.至于为什么先讲解单例模式? 那是因为单例模式是设计模式中最简单的... .凡事总有个先后顺序,所以就先易后难了.好了,废话不多说了,开始进入正片. 设计模式简介 说明:这里说了的简介就是真的 "简介". 什么是设计模式 设计模式是一套被反复使

Java常用的设计模式02:工厂模式

一.工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的.  工厂模式在<Java与模式>中分为三类: 1)简单工厂模式(Simple Factory):不利于产生系列产品: 2)工厂方法模式(Factory Method):又称为多形性工厂: 3)抽象工厂模式(Abstract Factory):又称为工具箱,产生产品族,但不利于产生新的产品:             这三种模式从上到下逐步抽象,并且更具一般性.             GOF在&