设计模式之单例模式

来源:互联网 发布:天猫数据平台 编辑:程序博客网 时间:2024/05/21 00:47

单例

  • 有些对象只需要有一个: 线程池、缓存、注册表,这类对象只能有一个实例,如果制造多个实例,就会导致许多问题的产生,比如,程序的行为异常、资源使用过量,或者不一致;
  • 全局变量的缺点:如果将对象赋值给一个全局变量,那么在程序一开始就要创建好对象,如果对象比较耗费资源,而程序在执行过程中一直没有用到,就浪费了。

单例模式的定义:确保一个类只有一个实例,并提供一个全局访问点,可以延迟实例化。适用于对资源敏感的对象 。

package Singleton;/** * Created by coo on 17/12/2. * 注意:不适用于多线程的情形 */public class Singleton {    private static Singleton uniqueInstance;    private Singleton(){};    public  static Singleton getInstance(){        if (uniqueInstance == null) {  // Thread 1、Thread 2 可能先后进入这个方法,导致产生两个不同的object;            uniqueInstance = new Singleton();        }        return uniqueInstance;    }}// multi Thread synchronizedpublic class Singleton {    private static Singleton uniqueInstance;    private Singleton(){};    public  static synchronized  Singleton getInstance(){        if (uniqueInstance == null) {            uniqueInstance = new Singleton();        }        return uniqueInstance;    }}缺点:每次调用该方法都会进行同步,性能不好;/** * Created by liuchaoqun01 on 17/12/2. * 急切实例化 */public class Singleton {    // jvm 初始化类的时候静态加载,保证线程安全    private static Singleton uniqueInstance = new Singleton();    private Singleton(){};    public static Singleton getInstance() {        return uniqueInstance;    }}双重检查加锁模式 java1.5以后适用:public class Singleton {    private volatile static Singleton _instance;    private Singleton(){};    public static Singleton getInstanceDC() {            if (_instance == null) {                synchronized (Singleton.class) {                    if (_instance == null) {                        _instance = new Singleton();                    }                }            }            return _instance;        }}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 油耳朵被堵住了怎么办 棉签掏耳朵堵了怎么办 耳朵被气堵住了怎么办 掏耳朵发炎了疼怎么办 掏耳朵掏深了疼怎么办 耳朵里进了虫子怎么办? 耳朵里飞进小虫怎么办 一只耳朵听力差怎么办 62岁耳朵有点聋怎么办 一支耳朵有点聋怎么办 80岁老人耳朵聋怎么办 被nlp课程洗脑了怎么办 手上张了个鸡眼怎么办 手上长了个鸡眼怎么办 6岁儿童手指脱皮怎么办 手指骨折后关节僵硬怎么办 手指外伤后关节肿大僵硬怎么办 胳膊骨折了手肿怎么办 耳朵被肘了耳鸣怎么办 耳朵鼓膜外显的怎么办 耳膜破了怎么办为好 耳朵的鼓膜破了怎么办 被打耳鼓膜穿孔怎么办 两只耳朵嗡嗡响怎么办 耳朵长了个脓包怎么办 胸一个大一个小怎么办 把耳朵掏出血了怎么办 掏耳朵戳出血了怎么办 耳朵戳伤流血了怎么办 耳朵挖破出血了怎么办 耳朵让耳屎堵了怎么办 手被牙齿划破了怎么办 耳朵掏伤了很痛怎么办 掏伤耳朵发炎了怎么办 耳朵被掏发炎了怎么办 打的耳洞化脓了怎么办 打了耳洞流脓了怎么办 打了耳洞发炎怎么办 打了耳洞化脓了怎么办 3岁宝宝耳朵流脓怎么办 耳朵里面是湿的怎么办