创建型模式--多例模式
多例模式通常被划分为:有上限多例模式、无上限多例模式。
平时我们通过new一个对象的就是无上限多例模式。
什么叫有上限多例模式,其实就是单例模式的推广,创建>1个的实例(有限)。
代码描述:
<span style="font-size:18px;">public class Case {//保存有限个类的实例private static ArrayList<Case> caseList=new ArrayList<Case>();//创建实例的个数private static final int MAX_NUM=2;/** 在类初试化阶段执行静态初始化快*/static{for(int i=0;i<MAX_NUM;i++){caseList.add(new Case());}}//私有方法private Case(){ }//定义static,类所有public static Case getCase(){Random random=new Random();int count=random.nextInt(MAX_NUM);return caseList.get(count);}
}</span>
在上面代码中,通过静态初始化块创建了有限个类的实例,通过geCase()方法随机获取实例。
如果我们不想通过随机获取实例,而是指定第几个实例的话,可以参看下面的代码:
<span style="font-size:18px;">public class Case {//保存有限个类的实例private static ArrayList<Case> caseList=new ArrayList<Case>();//创建实例的个数private static final int MAX_NUM=2;/** 在类初试化阶段执行静态初始化快*/static{for(int i=0;i<MAX_NUM;i++){caseList.add(new Case());}}//私有方法private Case(){ }//定义static,类所有public static Case getCase(final int index){if(index<MAX_NUM&&index>=0){return caseList.get(index);}return null;}
}</span>
转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/42207289 情绪控_
创建型模式--多例模式相关推荐
- python创建方法draw_【python设计模式-创建型】工厂方法模式
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻 ...
- JAVA设计模式-创建模式-多例模式
多例模式Multition 为什么要有设计模式? 什么是多例模式? 为什么要有多例模式? 多例模式的实现方式 鸣谢 为什么要有设计模式? 一个有价值的系统总是会因为需求的变化而变化,可能是原有需求的修 ...
- 创建型设计模式之工厂模式
文章目录 一.工厂设计模式 二.工厂设计模式详解 1.简单工厂模式 2. 工厂方法模式 3. 抽象工厂模式 总结 一.工厂设计模式 工厂模式就类比实际生活中的工厂,在实际生活中,用户从来不会关系一个物 ...
- 每天学习一个设计模式(八):创建型之抽象工厂模式
目录 一.基本概念 二.通俗解释 三.应用场景 1.使用简单工厂模式的解决方案 2.抽象工厂模式 抽象工厂模式结构 在什么情况下应当使用抽象工厂模式 抽象工厂模式的起源 四.抽象工厂模式的优缺点 抽象 ...
- 创建型设计模式之建造者模式(Builder)
结构 意图 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示. 适用性 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时. 当构造过程必须允许被构造的对象有不 ...
- 设计模式(创建型)之原型模式
GOF 给原型模式 的定义为:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 在 C++和Java 中都提供了clone()方法来实现对象的克隆,但是在Java中必须要实现Clone ...
- 创建型设计模式——抽象工厂模式
1.什么是抽象工厂模式? 抽象工厂模式: 定义了一个interface用于创建相关或有依赖关系的对象簇,而无需指明具体的类. 抽象工厂模式可以将简单工厂模式和工厂方法模式进行整合. 从设计层面看,抽 ...
- 创建型设计模式----工厂方法模式
1. 介绍 1.1 定义 工厂方法模式,又称工厂模式,通过定义工厂父类负责定义创建对象的公共接口,而子类则负责生成具体的对象. 1.2 主要作用 将类的实例化(具体产品的创建)延迟到工厂类的子类(具体 ...
- 设计模式-创建型-工厂-简单工厂模式
一.姑且用一个这样的图表示一下: 二.简单工厂的基本简介:百度释义:又叫静态工厂方法,不属于那23种设计模式之一. 动态决定哪个类被实例化,不必事先知道哪个类要被实例化! 三.举例:QQ里面常用发表 ...
最新文章
- windows 编写的硬件驱动_哪个是PXI硬件合适的设备驱动程序?VISA还是IVI?
- html图片滚动红点_html2canvas生成的图片偏移问题
- PYG教程【五】链路预测
- 在Twitter上使用Apache Mesos和Apache Aurora进行资源调度和任务启动
- python高级特性:迭代器与生成器
- BZOJ 1601 [Usaco2008 Oct]灌水 (最小生成树)
- 对于访问IIS元数据库失败的解决
- django-自定义转换器-实操案例
- iPhone 12或于7月开始量产,售价4615元起
- 纯VB代码取得硬盘的物理序列号
- opencore0.6.4_iOS 13.4/iPadOS 13.4正式版发布:iCloud支持文件夹共享
- 光线传感器,方向传感器Android
- 强悍的 linux —— sed 与 awk
- bzoj 2763: [JLOI2011]飞行路线 分层图
- 用java数组实现栈
- 如何判断数据库中是否已经存在某个临时表?
- 手机里多个PDF合并成一个PDF的免费方法
- JavaScript详细版
- 电脑系统重装win7的教程,win7系统一键安装
- 新型博客网站的运营要素分析
热门文章
- python做表格计算公式_Python自学Day45 制作Excel报表
- 软件体系架构阅读笔记一
- Micropython实例之TPYBoardv102开发板DIY照相机
- Spring + Mybatis 集成原理分析
- BIO与NIO、AIO的区别(这个容易理解)
- 走进JavaWeb技术世界7:Tomcat中的设计模式
- ngx_lua中的协程调度(三)
- MySQL 使用SELECT ... FOR UPDATE 做事务写入前的确认(转)
- 进程、线程与应用程序域
- 数据库定时导出和互备一例