设计模式四:多例模式

1、概述

所谓多例模式其实也就是类的对象实例是有多个,但是这个多个也要区别于无限个,当然,如果一个类的对象可以有无限个的话,那能不能叫多例呢??这个可能就需要区别多例模式的特点了

所谓多例(Multiton Pattern)实际上就是单例模式的自然推广,属于对象
创建类型的模式,多例模式其实就是限制了对象的数量,并且有可能对对象进行重复使用

特点:
1:多例可以有多个实例
2: 多例类必须能够自我创建并管理自己的实例,并且向外界提供自己的实例

2、使用场景

在java学习过程中,有一个池子的概念一直存在,好比作线程池,数据库连接池,这个池子是用来对线程,或者数据库连接对象进行管理的,第一,限制了池子中的对象数量,第二就是能够在使用过程中达到复用的效果,线程中的线程在执行完毕后,不会被直接回收掉,而会切换成等待状态,等待下一个任务提交,执行。数据库连接池也是如此,数据库操作在连接的时候,如果对数据库操作完毕后,会把资源释放,然后等待下一个数据库操作进行连接。这种设计其实是将对象的应用最大化了,避免了每次连接的时候都需要去创建一个对象。造成对象冗余或者内存升高。

3、案例

public class DuoLi {
  private static int num = 5;
  private static ArrayList<DuoLi> al = new ArrayList<>();

  private DuoLi(){}

  static{
    for (int i = 0; i < num; i++) {
      al.add(new DuoLi());
    }
  }

  public static DuoLi getDuoLi(){
    Random random = new Random();
    int i = random.nextInt(num);
    return al.get(i);
  }
}
posted @ 2022-02-12 18:44  火烧云Z  阅读(108)  评论(0)    收藏  举报