• 设计模式之单例模式


    1、单例的实现

    /**
     * 恶汉
     * @author haokui
     *
     */
    class Single_villian {
        private Single_villian() {
            
        }
        private static Single_villian s = new Single_villian();
        public  static  Single_villian getSingle() {
            return s;
        }
    }
    /**
     * 懒汉
     * @author haokui
     *
     */
    class Single_lazy {
        private Single_lazy() {
            
        }
        private static Single_lazy s = null;
        public  static synchronized Single_lazy getSingle() {
            if (s == null) {
                return new Single_lazy();
            }
            return s;
        }
    }
    /**
     * 使用内部类来更好的实现单例模式
     * @author haokui
     *
     */
    class Single_internal {
        private Single_internal() {
        }
        public  static  Single_internal getSingle() {
                return Internal.s;
        }
        private static class Internal {
            public  static  Single_internal s = new Single_internal();
        }
    }

    第一种方式恶汉,饿汉式在类创建的同时就实例化一个静态对象出来,不管之后会不会使用这个单例,都会占据一定的内存,但是相应的,在第一次调用时速度也会更快,因为其资源已经初始化完成。

    第二种懒汉。性能比较低,为了线程安全加了同步关键字。

    第三种采用静态内部的方式来实现。外部类被加载的时候,内部类不会被加载,只有在调用内部类的静态方法或者属性的时候才会被加载,这样正好能保证只产生一个实例,而且不存在线程安全的问题。

  • 相关阅读:
    django学习笔记(一)
    Python之函数进阶
    Python之函数初识
    Python之文件操作
    基础补充
    字典
    神奇的列表
    万能的字符串
    Python基础(二)
    使用paramiko进行ssh连接
  • 原文地址:https://www.cnblogs.com/hkdpp/p/9072224.html
Copyright © 2020-2023  润新知