【设计模式】单例模式

来源:互联网 发布:编程入门教学视频 编辑:程序博客网 时间:2024/06/01 20:20

今天开始整理设计模式,首先整理一下单例模式的基本概况,顾名思义:

单例模式

  • 只能产生一个对象

这里写图片描述

public class Singleton{    public  static final Singleton  singleton=new Singleton();    //私有构造函数确保只能产生一个对象    public Singleton(){}    public static Singleton getInstance(){        if(singleton==null){            return new Singleton();        }    }    //....}

优点

  • 创建一个对象,内存占用较少

  • 对于所创建对象需要的资源较多情况下,可以使用单例模式,让对象驻留在内存中,以便使用

  • 单例模式只产生一个对象,避免对资源占用的冲突,多个对象对同一个文件的读写操作

缺点

  • 高并发可能会导致多个对象的存在

  • 对象赋值问题

单例模式变性

  • 产生N(N>1)个对象
public class SingletonMulti {      //定义最多能生产两个实例      private static int maxNum = 2;      //定义一个列表,容纳多有的实例      private static ArrayList<SingletonMulti> singletonSingletonMultilist = new ArrayList<SingletonMulti>();      //产生指定数量的实例对象      static{          for( int i=0; i<maxNum; i++ ){              singletonSingletonMultilist.add(new SingletonMulti());          }      }      private SingletonMulti(){          System.out.println("创建SingletonDevelop实例");      }      //得到随机的SingletonDevelop实例      public static SingletonMulti SingletonSingletonMulti(){          Random randrom = new Random();          int singletonSingletonMultiNum = randrom.nextInt(maxNum);          return singletonSingletonMultilist.get(singletonSingletonMultiNum);      }  }  
0 0