zoukankan      html  css  js  c++  java
  • Java学习之单例模式

    单例设计模式:解决一个类在内存中只存在一个对象
    思想:
    1.为了避免过多创建类的对象,禁止此类以外创建对象(构造方法私有化)
    2.为了类可以被使用就必须创建此类对象,只好在本类中,创建对象
    3.在此类中创建的对象,怎么给此类以外的使用,所已此类必须提供返回对象的一个方法
    代码体现:
    1.将构造函数私有化
    2.在类中创建对象
    3.提供一个方法用于获取此类对象
    class Single
    {
        /**
        方式一、饿汉式
        开发建议使用
        */
        //1.将构造函数私有化
        private Single(){}
        //2.在类中创建对象
        private static Single s=new Single();
        //3.提供一个方法用于获取此类对象
        public static Single getInstance()
        {
            return s;
        }
        /**
        方式二、懒汉式
        */
        private Single(){}
        private static Single s=null;
        //线程不安全
        public static Single getInstance()
        {
            if(s==null)
                s=new Single();
            return s;
        }
        //加同步(效率低)
        public static synchronized Single getInstance()
        {
            if(s==null)
                s=new Single();
            return s;
        }
        //双重判断
        public static Single getInstance()
        {
            if(s==null)
            {
                synchronized(Single.class)
                {
                    if(s==null)
                        s=new Single();
                }
            }
            return s;
        }
        
        private int num;
        public int getNum()
        {
            return num;
        }
        public void setNum(int num)
        {
            this.num=num;
        }
    }
    
    class SingleDemo
    {
        public static void main (String[] args)
        {
            Single s1=Single.getInstance();
            Single s2=Single.getInstance();
            s1.setNum(23);
            System.out.println(s2.getNum());
        }
    }
  • 相关阅读:
    单词小课堂
    js数组
    js规范
    css
    seajs
    IDEA快捷键
    移动端设备禁止页面滑动
    sass中的!default的作用
    【数据分析 R语言实战】学习笔记 第八章 方差分析与R实现
    excel合并单元格
  • 原文地址:https://www.cnblogs.com/WarBlog/p/12054282.html
Copyright © 2011-2022 走看看