多例模式,是一种常用的软件设计模式,通过多例模式可以保证系统中,应用该模式的类有固定数量的实例。多例类要自我创建并管理自己的实例,还要向外界提供获取本类实例的方法。
线程池 = Executors.newFixedThreadPool(3);
多例模式的实现步骤分为以下5步
使用多例模式定义一个类
public class Multition { // 构造方法私有化,不允许外界创建本类对象 public Multition() { } // 定义该类被创建的总数量 private static final int maxCount = 3; // 定义存放类实例的list集合 private static List<Multition> instanceList = new ArrayList<>(); // 在静态代码块中创建本类的多个实例,并存放到list集合中 static { for (int i = 0; i < maxCount; i++) { Multition multition = new Multition(); instanceList.add(multition); } } // 给外界提供一个获取类对象的方法 public static Multition getInstance(){ int i = new Random().nextInt(maxCount); return instanceList.get(i); } }
在测试类中创建多个实例对象进行测试
public class TestMult { @Test public void test01(){ for (int i = 0; i < 10; i++) { Multition instance = Multition.getInstance(); System.out.println(instance); } //com.itheima.sh.Multition@5d11346a //com.itheima.sh.Multition@5d11346a //com.itheima.sh.Multition@7a36aefa //com.itheima.sh.Multition@5d11346a //com.itheima.sh.Multition@17211155 //com.itheima.sh.Multition@5d11346a //com.itheima.sh.Multition@17211155 //com.itheima.sh.Multition@7a36aefa //com.itheima.sh.Multition@7a36aefa //com.itheima.sh.Multition@7a36aefa } }
可以发现,只存在3个不同的实例对象。
原文:https://www.cnblogs.com/xulinjun/p/15092615.html