多例设计模式

多例设计模式的作用

多例模式,是一种常用的软件设计模式。通过多例模式可以保证系统中,应用该模式的类有固定数量的实例。多例类要自我创建并管理自己的实例,还要向外界提供获取本类实例的方法。

实现步骤

1.创建一个类, 将构造方法私有化,使其不能在类的外部通过new关键字实例化该类对象。

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 }

 

posted @ 2020-12-21 15:05  乃颜先生  阅读(174)  评论(0编辑  收藏  举报