多例模式
个人理解:
该类可以有多个实例,但是每个实例有不同的属性。
getInstance方法获取到的实例对象中会保证属性值相同的实例只有一个。
import java.util.ArrayList;
import java.util.Random;
/**
* @author cbf4Life cbf4life@126.com I'm glad to share my knowledge with you
* 多例模式
*/
@SuppressWarnings("all")
public class Emperor {
private static int maxNumOfEmperor = 2; // 最多只能有连个皇帝
private static int countNumOfEmperor = 0; // 正在被人尊称的是那个皇帝
private static ArrayList emperorInfoList = new ArrayList(maxNumOfEmperor); // 皇帝叫什么名字
private static ArrayList emperorList = new ArrayList(maxNumOfEmperor); // 装皇帝的列表;
// 先把2个皇帝产生出来
static {
// 把所有的皇帝都产生出来
for (int i = 0; i < maxNumOfEmperor; i++) {
emperorList.add(new Emperor("皇" + (i + 1) + "帝"));
}
}
// 就这么多皇帝了,不允许再推举一个皇帝(new 一个皇帝)
private Emperor() {
// 世俗和道德约束你,目的就是不让你产生第二个皇帝
}
private Emperor(String info) {
emperorInfoList.add(info);
}
public static Emperor getInstance() {
Random random = new Random();
countNumOfEmperor = random.nextInt(maxNumOfEmperor); // 随机拉出一个皇帝,只要是个精神领袖就成
return (Emperor) emperorList.get(countNumOfEmperor);
}
public static Emperor getInstance(int param) {
countNumOfEmperor = param;
return (Emperor) emperorList.get(param);
}
// 皇帝叫什么名字呀
public static void emperorInfo() {
System.out.println(emperorInfoList.get(countNumOfEmperor));
}
}
代码引自《我们的设计模式》(存在与附件)
分享到:
相关推荐
单例模式 多例模式
单例模式的扩展及应用。 编写一个类LimitInstanceClass,该类最多可以实例化指定个数实例。实例的个数用配置文件InstanceLimit.cfg指定。例如,如果InstanceLimit.cfg的内容为2,则LimitInstanceClass最多可以同时...
NULL 博文链接:https://xiandaoyan.iteye.com/blog/670030
单例模式有以下特点: 单例类只能有一个实例。 单例类必须自己创建自己的唯一实例。 单例类必须给所有其他对象提供这一实例。 一个典型的单例类的实现如下所示:其中构造子私有表示子类不能被继承。
编写一个类LimitInstanceClass,该类最多可以实例化指定个数实例。实例的个数用配置文件InstanceLimit.cfg指定。例如,如果InstanceLimit.cfg的内容为2,则LimitInstanceClass最多可以同时存在2个对象。...
单例多例
学习java就知道设计模式中有多例模式: 1、多例类可以有多个实例2、多例类必须能够自我创建并管理自己的实例,并向外界提供自己的实例。 大家都知道PHP单例模式,却很少说PHP多例模式,下面是在wikipedia上看到的PHP...
java多例模式下处理Sftp文件上传下载,采用固定密码访问Sftp服务器。
支持数据库单例模式和多例模式,sql文件写在xml中阅读性和维护性都很好,只需要将sql的xml文件交给DBA,DBA即可很轻松的维护,完全脱离了在php文件中写sql语句,数据库类采用了PDO技术,sql参数采用绑定的方式,有效...
支持数据库单例模式和多例模式,sql文件写在xml中阅读性和维护性都很好,只需要将sql的xml文件交给DBA,DBA即可很轻松的维护,完全脱离了在php文件中写sql语句,数据库类采用了PDO技术,sql参数采用绑定的方式,有效...
。
。
主要介绍了Java单例模式和多例模式,结合实例形式分析了java单例模式与多例模式的定义及使用技巧,需要的朋友可以参考下
如模式名称,单例只能实例化一次,只有一个对象,多例模式可以多次实例化。基于Singleton的特性,我们经常用Singleton配置应用程序并定义应用程序中可能随时访问的变量。但有时并不推荐使用Singleton,因为它生成了...
java-设计模式之:多例(Multiton)模式
通过多例模式可以保证系统中,应用该模式设计的类有**固定数量**的对象产生。 **说白了,多例设计模式就是保证使用该模式的类会有固定数量的该类对象产生** #### 实现步骤 1.创建一个类, 将构造方法私有化,使其...
多例模式[MULTITION PATTERN] 工厂方法模式[FACTORY METHOD PATTERN] 抽象工厂模式[ABSTRACT FACTORY PATTERN] 门面模式[FACADE PATTERN] 适配器模式[ADAPTER PATTERN] 模板方法模式[TEMPLATE METHOD PATTERN] 建造...
4、多例模式MULTITION PATTERN 5、工厂方法模式FACTORY METHOD PATTERN 6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式FACADE PATTERN 8、适配器模式ADAPTER PATTERN 9、模板方法模式TEMPLATE METHOD ...
Java多线程编程环境中单例模式的实现