zoukankan      html  css  js  c++  java
  • 单例模式

    定义:

    1、一个类只有一个实例

    2、构造函数私有化

    3、简单来说,所谓的饿汉式单例就是线程安全的,而且是推荐做法。懒汉式单例就是线程不安全的。

    线程安全的:

    /**
     * @author Administrator
     * 饿汉式单例,线程安全的
     */
    public class SingleInstance {
        private static final SingleInstance singleTon = new SingleInstance();
        
        private SingleInstance() {
        }
    
        public static SingleInstance getSingleton() {
            return singleTon;
        }
    }

    线程不安全的:

    /**
     * @author Administrator
     * 懒汉式单例,线程不安全的
     */
    public class SingleInstance {
        private static final SingleInstance singleTon = null;
        
        private SingleInstance() {
        }
        
        // 加上synchronized,即是线程安全的,
        // public synchronized static SingleInstance getSingleton() {
        public static SingleInstance getSingleton() {
            if (singleTon == null) {
                singleTon = new SingleInstance();
            }
            
            return singleTon;
        }
    }

    单例模式的扩展:固定数量的实例,get实例的时候可以根据自己的算法get,顺序,随机什么的,这里不做解析。

    单例模式优点:

    1、减少内存开支,特别是需要频繁创建销毁对象。

    2、通过应用启动时永久驻留内存

    3、避免对资源的多重占用,例如写文件

    4、优化共享资源

    单例模式缺点:

    1、扩展困难

    2、测试困难,必须完成才能做测试

  • 相关阅读:
    第06组 Alpha冲刺(6/6)
    第06组 Alpha冲刺(5/6)
    总结
    Vmware centos7无法联网的问题解决
    网络爬虫--前世今生
    CVE-2018-4407 漏洞复现POC
    编码原理_base64编码原理
    短信验证码之验证码回显
    2018_10_21 22:42
    信息安全考研和就业的选择分析
  • 原文地址:https://www.cnblogs.com/jinglingJuly/p/3142055.html
Copyright © 2011-2022 走看看