多例设计模式
多例设计模式的作用
多例模式,是一种常用的软件设计模式。通过多例模式可以保证系统中,应用该模式的类有固定数量的实例。多例类要自我创建并管理自己的实例,还要向外界提供获取本类实例的方法。
实现步骤
2.在该类内部产生固定数量的实例化对象 ----> 集合
3.提供一个静态方法来随机获取一个该类的实例化对象
1 public class Person {
2 // 使用多例设计模式: 保证程序运行期间该类只有固定数量的对象产生
3 // 1.创建一个类, 将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。
4 private Person(){
5 }
6
7 // 2.在该类内部产生固定数量的实例化对象 ----> 集合 只能产生依次固定数量的对象
8
9 // 2.1 定义一个存放该类对象的集合
10 private static ArrayList<Person> list = new ArrayList<>();
11
12 // 2.2 在静态代码块中,创建固定数量的对象,添加到集合中
13 static {
14 // 创建固定数量的该类对象
15 for (int i = 0; i < 3; i++) {
16 Person p = new Person();
17 list.add(p);
18 }
19 }
20
21 // 3.提高一个静态方法来随机获取一个该了的实例化对象
22 public static Person getInstance(){
23 // 创建一个Random对象
24 Random r = new Random();
25 // 随机产生一个list集合的索引
26 int index = r.nextInt(list.size());// [0,3) 0,1,2
27 // 根据索引获取对象
28 Person p = list.get(index);
29 // 返回对象
30 return p;
31 }
32 }
1 public class Test {
2 public static void main(String[] args) {
3 for (int i = 0; i < 10; i++) {
4 Person p1 = Person.getInstance();
5 System.out.println(p1);
6 }
7
8 }
9 }