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

    package singleton;
    //单例模式的意义,让类只能创建一个对象,目的是减少对象的创建个数节约内存空间
    //调用同一个方法,如果有几千上万人去调用,按照对象调用方法那么需要创建几千上万个对象,单例模式目的在共享一个对象,创建对象的过程私有化
    //根据分析需要在本类中某个成员位置进行new来创建唯一一个对象,那么应该在哪里进行创建呢
    
    public class SingleTon {
        //重写无参数构造方法,修改权限符,外界不允许随意调用
        private SingleTon(){
        }
        //不能直接让别人操作属性,万一给你赋值为null呢,static目的是让这个属性变成类的,只加载一次
        private static SingleTon singleTon=new SingleTon();//饿汉式:类加载的时候就创建了
        //private static SingleTon singleTon;//懒汉式:只声明,当调用方法时才创建对象
        //通过使用getSingleTon方法创建获得对象,类名调用
        public static SingleTon getSingleTon(){
    //        if(singleTon==null){//懒汉式:在方法中创建,调用时才创建。加一段判断,确保第二次调用时不会再创建对象
    //            singleTon=new SingleTon();
    //        }
            return singleTon;
        }
        
        //分析创建对象的位置
        //属性---可以,不过得注意
        //方法----不行,可以创建,也有返回值,但是保证不了唯一,调用几次就创建几个。
        //构造方法---不行,本来就要调它,不能再它自己里面调用自己
        //块--不行,可以创建,但是无法给别人使用,没有返回值
    //    {
    //        SingleTon ston=new SingleTon();
    //    }
    
    }
    
    /**
     * 总结:
     * 1.私有的构造方法
     * 2.私有的静态的当前类对象作为属性
     * 3.公有的静态方法返回当前类对象
     * 单例模式的实现,指对象的加载
     * 饿汉试(立即加载-类加载时就创建对象) 
     * 懒汉式(延迟加载--调用方法时才创建对象)
     * 生命周期托管(对象加载过程交给别人)
     **/
  • 相关阅读:
    tp5项目后台比赛界面
    总结7.21 lavarel视图
    总结7.20 laravel自动验证
    java学习day78--JT项目16(CORS跨域/HttpCLient/jt-sso单点登录)
    java学习day77-JT项目15(Ajax跨域访问/JSONP)
    java学习day77-JT项目15(Redis集群算法/spring boot整合redis集群)
    java学习day76-JT项目14(Redis集群搭建)
    java学习day76-JT项目14(Redis分片机制/哨兵机制)
    检查Linux中发现没有IP
    java学习day75-JT项目13(AOP实现redis缓存/Redis缓存)
  • 原文地址:https://www.cnblogs.com/hebiao/p/12326894.html
Copyright © 2011-2022 走看看