码迷,mamicode.com
首页 > 编程语言 > 详细

Java学习之单例模式

时间:2019-12-17 15:31:00      阅读:90      评论:0      收藏:0      [点我收藏+]

标签:style   java学习   java   this   syn   int   创建对象   div   一个   

单例设计模式:解决一个类在内存中只存在一个对象
思想:
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());
    }
}

 

Java学习之单例模式

标签:style   java学习   java   this   syn   int   创建对象   div   一个   

原文地址:https://www.cnblogs.com/WarBlog/p/12054282.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!