美文网首页
5.单例模式-懒汉式-同步方法

5.单例模式-懒汉式-同步方法

作者: 测试员 | 来源:发表于2019-11-18 23:45 被阅读0次

    步骤

    1)单利模式 防止其他类中new,所以private修饰
    2)类中创建对象----但是要在静态代码块中创建
    3)对外提供一个静态方法来创建对象【这一步要使用懒加载】

    优点

    解决了线程不安全问题 。

    缺点

    每次调用方法都会同步,降低了效率。【这个也没用,看看就好。】

    代码实现

    (只在公共方法上加了一个同步关键字 synchronized)

    package yuan.com.dp.singleton;
    
    /**
     * 测试类
     */
    class Test_SingleTon_4 {
        public static void main(String[] args) {
            SingleTon_4 ton_1 = SingleTon_4.getSingleTon_4();
            SingleTon_4 ton_2 = SingleTon_4.getSingleTon_4();
            System.out.println(ton_1 == ton_2);
        }
    }
    
    /**
     * 单利模式-懒汉式-同步方法
     */
    public class SingleTon_4 {
        /**
         * 1.单利模式 防止其他类中new,所以private修饰
         */
        private SingleTon_4() {
        }
    
    
        /**
         * 2.类中创建私有对象
         */
        private static SingleTon_4 singleTon_4 = null;
    
        /**
         * 3.对外提供一个静态方法来创建对象
         *
         * @return singleTon_4实例
         * 相较于前一版多加了个synchronized
         */
        public synchronized static SingleTon_4 getSingleTon_4() {
            //这里是精华,使用到了懒加载,其实优化代码就是尽量懒加载,不过懒加载也要视情况而定。
            if (singleTon_4 == null) {
                singleTon_4 = new SingleTon_4();
            }
            return singleTon_4;
        }
    }
    
    

    相关文章

      网友评论

          本文标题:5.单例模式-懒汉式-同步方法

          本文链接:https://www.haomeiwen.com/subject/rmpiictx.html