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

java 单例设计模式

时间:2017-02-12 17:31:35      阅读:167      评论:0      收藏:0      [点我收藏+]

标签:存在   instance   stat   print   div   创建   访问   静态变量   out   

为了保证类在内存中只能有一个对象,构造函数需要private外面不实例化对象,提供一个公共方法返回一个实例

//饿汉式

class Single{

//需要是static的,getInstance方法才能访问,因为静态方法不能访问非静态变量

 private static Single s = new Single();

 private Single(){}

//因为构造函数是private的,外面无法创建实例,所以下面方法需要是static的外面才能通过类名访问

 public static Single getInstance(){

  return s;

 }

}

 

//懒汉式

class Single{

//需要是static的,getInstance方法才能访问,因为静态方法不能访问非静态变量

 private static Single s = null;

 private Single(){}

//因为构造函数是private的,外面无法创建实例,所以下面方法需要是static的外面才能通过类名访问

 public static Single getInstance(){

        if(s==null)
        {
            synchronized(Single.class)  //因为可能存在线程安全问题    
            {
                if(s==null)
                    s = new Single();
            }
        }
        return s;

 }

}

 

 

 

//测试
public static void main(String[] args) 
{
Single s1 = Single.getInstance();
Single s2 = Single.getInstance();
System.out.print(s1==s2); //true
}

java 单例设计模式

标签:存在   instance   stat   print   div   创建   访问   静态变量   out   

原文地址:http://www.cnblogs.com/cy2011/p/6391085.html

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