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

    特点

    解决一个类在内存中只存在一个对象

    保证对象唯一

    1、为了避免其他程序过多的建立该类对象,先禁止其他程序建立该对象
    
    2、为了让其他程序可以访问该类对象,可以在本类中自定义一个对象
    
    3、为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式
    

    体现方式

    1、将构造函数私有化
    
    2、在类中创建一个本类对象
    
    3、提供一个方法可以获取到本类对象
    

    当需要将事物的对象保证在内存中的唯一性,就可以将以上三步加上

    第一种体现形式(饿汉式)

    先初始化对象
    Single一进内存,就已经创建好了对象

    class Single {
        private Single() {}
        private static Single s = new Single;
        public static Single getInstance() {
            return s;
        }
    }
    
    class Demo {
        public static void main(String[] args) {
            Single ss = Single.getInstance();
        }
    }
    

    第二种体现形式(懒汉式)

    对象的延时加载,方法被调用时,才初始化对象
    Single进内存时,对象还没有存在,只有在调用getInstance方法时,才建立对象

    class Single {
        private Single() {}
        private static Single s = null;
        public static Single getInstance() {
            if(s == null) {
                s = new Single();
            return s;
            }
        }
    }
    
    class Demo {
        public static void main(String[] args) {
            Single ss = Single.getInstance();
        }
    }
    

    原则:定义单例,建议使用饿汉式
    面试时,一般面试懒汉式,处理线程的同步问题

  • 相关阅读:
    gulp自动化压缩合并、加版本号解决方案
    利用gulp 插件gulp.spritesmith 完成小图合成精灵图,并自动输出样式文件
    gulp插件(8)
    gulp插件 run-sequence(同步执行任务)
    gulp合并压缩
    Freemarker 基础概念
    querystring模块详解
    深入理解JavaScript的闭包特性如何给循环中的对象添加事件
    堆中的路径
    公式求值
  • 原文地址:https://www.cnblogs.com/rancvl/p/5460634.html
Copyright © 2011-2022 走看看