首页 > 其他 > 详细

设计模式--单例模式

时间:2018-09-06 00:43:09      阅读:217      评论:0      收藏:0      [点我收藏+]

单例模式的意义

有些对象我们只需要一个:线程池、缓存、硬件设备等

如果多个实例会有造成冲突、结果的不一致性等问题

是否可以用静态变量方式来实现?

或者程序员之间协商个全局变量?

 

单例模式:确保一个类最多只有一个实例,并提供一个全局访问点 

单例模式类图:

技术分享图片

把构造函数私有化,getInstance中判断uniqueInstance是否已经实例化,若已经实例化直接返回,否则实例化后返回

代码演示:

package com.java.jikexueyuan.singleton;

public class Singleton {
    
    private static Singleton uniqeInstance=null;
    
    private Singleton(){
        
    };
    
    public static Singleton getInstance()
    {
        if(uniqeInstance==null)
        {
            uniqeInstance=new Singleton();
        }
        return uniqeInstance;
        
    }

}

单例模式的优化

多线程问题

  可能会出现创建多个实例的情况

 

优化:

  同步(synchronized)getInstance方法:频繁情况比较耗资源

  “急切”创建实例(饿汉式):在类加载时就完成了初始化,所以类加载较慢,但获取对象的速度快

双重检查加锁

  技术分享图片

 

设计模式--单例模式

原文:https://www.cnblogs.com/lm970585581/p/9595499.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!