Emperor.java 代码如下:
package com.designPattern.multition;
import java.util.ArrayList;
import java.util.Random;
/**
* 两个皇帝的故事
* @author yangjianzhou
*
*/
public class Emperor {
private static int maxNumOfEmperor = 2;
private static ArrayList<String> emperorInfoList = new ArrayList<String>(maxNumOfEmperor);
private static ArrayList<Emperor> emperorList = new ArrayList<Emperor>(maxNumOfEmperor);
private static int countNumOfEmperor = 0;
/**
* 先产生两个皇帝出来
*/
static{
for(int i=0;i<maxNumOfEmperor;i++){
emperorList.add(new Emperor("皇"+(i+1)+"帝"));
}
}
/**
* 不允许在产生皇帝
*/
private Emperor(){
}
private Emperor(String info){
emperorInfoList.add(info);
}
public static Emperor getInstance(){
Random random = new Random();
countNumOfEmperor = random.nextInt(maxNumOfEmperor);
return emperorList.get(countNumOfEmperor);
}
public static void emperorInfo(){
System.out.println(emperorInfoList.get(countNumOfEmperor));
}
}
Minister.java代码如下:
package com.designPattern.multition;
public class Minister {
public static void main(String[] args) {
int ministerNum = 10;
for(int i=0;i<ministerNum;i++){
Emperor emperor = Emperor.getInstance();
System.out.print("第"+(i+1)+"个大臣参拜的皇帝是:");
emperor.emperorInfo();
}
}
}
运行结果如下:
第1个大臣参拜的皇帝是:皇2帝
第2个大臣参拜的皇帝是:皇1帝
第3个大臣参拜的皇帝是:皇1帝
第4个大臣参拜的皇帝是:皇1帝
第5个大臣参拜的皇帝是:皇2帝
第6个大臣参拜的皇帝是:皇1帝
第7个大臣参拜的皇帝是:皇2帝
第8个大臣参拜的皇帝是:皇2帝
第9个大臣参拜的皇帝是:皇1帝
第10个大臣参拜的皇帝是:皇2帝
分享到:
相关推荐
本书《您的设计模式》对设计模式进行了详细的讲解,涵盖了策略模式、代理模式、单例模式、多例模式、工厂方法模式、抽象工厂模式、门面模式、适配器模式、模板方法模式、建造者模式、桥梁模式、命令模式、装饰模式、...
4、多例模式MULTITION PATTERN 5、工厂方法模式FACTORY METHOD PATTERN 6、抽象工厂模式ABSTRACT FACTORY PATTERN 7、门面模式FACADE PATTERN 8、适配器模式ADAPTER PATTERN 9、模板方法模式TEMPLATE METHOD ...
#### 四、多例模式【Multition Pattern】 **故事背景:** 虽然刘备决定只任命一位总督,但在处理政务时发现某些情况下需要针对不同的地域指派专门的官员进行管理。于是,他决定根据不同的地区设置相应的官员职位,...
第4章多例模式(MULTITION PATTERN):与单例模式类似,但允许创建多个实例,通常在需要多个实例且这些实例之间需要共享某些状态时使用。 第5章工厂方法模式(FACTORY METHOD PATTERN):定义一个用于创建对象的...
4. **多例模式(Multition Pattern)**:一种类似单例模式的变体,它允许根据不同的键值创建多个实例。 5. **工厂方法模式(Factory Method Pattern)**:定义一个创建对象的接口,但让子类决定实例化哪一个类。 6...
多例模式【MULTITION PATTERN】 工厂方法模式【FACTORY METHOD PATTERN】 抽象工厂模式【ABSTRACT FACTORY PATTERN】 门面模式【FACADE PATTERN】 适配器模式【ADAPTER PATTERN】 模板方法模式...
多例模式(Multition Pattern) 类似于单例模式,但是允许多个实例,这些实例的状态完全相同。 #### 5. 工厂方法模式(Factory Method Pattern) 定义了一个创建对象的接口,但允许子类决定实例化哪一个类。工厂...
#### 多例模式【MULTITION PATTERN】 多例模式是单例模式的一种扩展,它允许一个类有多个实例,但这些实例的数量是固定的。 **应用场景:** 例如,一个应用程序可能需要维护一组用户配置,每个用户对应一个唯一的...