首页 > 其他 > 详细

单例设计模式

时间:2020-04-12 01:25:09      阅读:83      评论:0      收藏:0      [点我收藏+]

一.单例设计模式

1. 作用: 在应用程序有保证最多只能有一个实例.
2. 好处:
  1)提升运行效率.
  2)实现数据共享. 案例:application 对象

(一)懒汉式

1.对象只有被调用时才去创建.
2.由于添加了锁,所以导致效率低.
3.示例代码

public class SingleTon {
    //由于对象需要被静态方法调用,把方法设置为static
    //由于对象是static,必须要设置访问权限修饰符为private ,如果是public可以直接调用对象,不执行访问入口
    private static SingleTon singleton;
    /**
     * 构造方法:
     * 方法名和类名相同.
     * 无返回值.
     * 
     * 构造方法私有化:其他类不能实例化这个类对象
     * 
     * 对外提供访问入口
     */
    private SingleTon(){}
    
    /**
     * 实例方法,实例方法必须通过对象调用
     * 
     * 设置方法为静态方法
     * 
     */
    public static SingleTon getInstance(){
        //添加逻辑如果实例化过,直接返回
        if(singleton==null){
            /*
             * 多线程访问下,可能出现if同时成立的情况,添加锁
             */
            synchronized (SingleTon.class) {
                //双重验证
                if(singleton==null){
                    singleton = new SingleTon();
                }
            }            
        }
        return singleton;
    }
}

(二)饿汉式

1.解决了懒汉式中多线程访问可能出现同一个对象和效率低问题
2.示例代码

public class SingleTon {
    //在类加载时进行实例化. 
    private static SingleTon singleton=new SingleTon(); 
    private SingleTon(){} 
    public static SingleTon getInstance(){
        return singleton; 
    }
}

 

单例设计模式

原文:https://www.cnblogs.com/sunny-sml/p/12683226.html

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