单例设计模式续--有上限的多例设计
2016-05-09 18:59
239 查看
package Singleton_Pattern; import java.util.ArrayList; import java.util.Random; //让一个类最多产生指定数量的对象,即有上限的多例模式 public class demo3 { public static void main(String[] args) { int ministerNum = 5; for(int i=0;i<ministerNum;i++){ Emperor2 emp = Emperor2.getInstance(); System.out.println("第"+(i+1)+"个大臣参拜的是"); emp.say(); } } } class Emperor2{ //定义最多能产生的实例的数量 private static int maxNumOfEmperor = 2; //每个皇帝都有名字,使用一个ArrayList来容纳,每个对象的私有属性 private static ArrayList<String> nameList = new ArrayList<String>(); //定义一个列表,容纳所有皇帝的实例 private static ArrayList<Emperor2> emperorList =new ArrayList<Emperor2>(); //当前皇帝的序列号 private static int countNumOfEmperor =0; //产生所有对象 static{ for(int i=0;i<maxNumOfEmperor;i++){ emperorList.add(new Emperor2("皇"+(i+1)+"帝")); } } private Emperor2(){ } private Emperor2(String name){ nameList.add(name); } //随机获得一个皇帝对象 public static Emperor2 getInstance(){ Random random = new Random(); countNumOfEmperor = random.nextInt(maxNumOfEmperor); return emperorList.get(countNumOfEmperor); } //皇帝说话 public static void say(){ System.out.println("我是"+nameList.get(countNumOfEmperor)); } }
相关文章推荐
- PropertyChangeListener简单理解
- 什么是设计模式
- 设计模式之创建型模式 - 特别的变量问题
- 七、设计模式——装饰模式
- 设计模式总结
- 设计模式之创建型模式
- 浅谈设计模式的学习
- Ruby设计模式编程之适配器模式实战攻略
- 实例讲解Ruby使用设计模式中的装饰器模式的方法
- 设计模式中的模板方法模式在Ruby中的应用实例两则
- Ruby设计模式编程中对外观模式的应用实例分析
- 实例解析Ruby设计模式编程中Strategy策略模式的使用
- Ruby中使用设计模式中的简单工厂模式和工厂方法模式
- Ruby使用设计模式中的代理模式与装饰模式的代码实例
- 详解组合模式的结构及其在Ruby设计模式编程中的运用
- C#编程中使用设计模式中的原型模式的实例讲解
- 使用设计模式中的工厂方法模式进行C#编程的示例讲解
- 实例解析C#设计模式编程中简单工厂模式的使用
- 详解C#设计模式编程中生成器模式的使用
- 深入解析C#设计模式编程中对建造者模式的运用