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

java 单例类

时间:2015-06-03 21:19:46      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

·单例类

    单实例类,就是这个类只能创建一个对象,保证了对象实例的唯一性。

 

例子:单实例类


 

class Singleton 
{ 
    private static Singleton instance;  //使用static修饰,因为它要在该类的静态方法中被访问,作用                     //是一个引用变量指向对象。  
     
    private Singleton(){};  //提供一个私有的构造器,使用方法来控制它创建对象的个数。  
 
    //方法必须是public的和static的,因为方法要公开被下面的类调用并且下面的s1引用变量获取方法的方式是        //通过类.方法来实现的。因为不能创建对象,所以只能用类。这样就约束了只能创建一个对象。  
    public static Singleton getInstance() 
    { 
        if (instance == null) 
        { 
            instance = new Singleton(); 
        } 
 
        return instance; 
    } 
} 
 
 
public class SingletonTest 
{ 
    public static void main(String[] args) 
    { 
        Singleton s1 = Singleton.getInstance(); 
        Singleton s2 = Singleton.getInstance(); 
        System.out.println(s1 == s2);   //结果为true,这里可以看出确实是同一个对象 "=="比较两个对象的内存地址是否相同。
    } 
} 

//饿汉式
//class  single1
//{
//        private static single1 s=null;
//        private single1() {}
//        public static single1 getinstance()
//        {
//                if(s==null)
//                        s=new single();
//                return s;
//        }
//}
//懒汉式
//原则  定义单例时原则上用饿汉式
class singledemo
{
        public static void main(String [] args)
        {
                System.out.println("Hello world");
        }
}

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

为了避免其他程序多建立该类对象。先禁止其他程序建立该类对象。
如果对象中构造函数可以传入参数。建立对象。就会改变对象初始化数据。而该对象只提供功能。避免其他调用着创建对象,而改动初始数据。所以封装对象

 

1、单例模式能够保证一个类仅有唯一的实例,并提供一个全局访问点。
2、单例模式主要有3个特点:
(1)、单例类确保自己只有一个实例。
(2)、单例类必须自己创建自己的实例。
(3)、单例类必须为其他对象提供唯一的实例。
3、对于懒汉模式,我们可以这样理解:该单例类非常懒,只有在自身需要的时候才会行动,从来不知道及早做好准备。它在需要对象的时候,才判断是否已有对象,如果没有就立即创建一个对象,然后返回,如果已有对象就不再创建,立即返回。
4、对于饿汉模式,我们可以这样理解:该单例类非常饿,迫切需要吃东西,所以它在类加载的时候就立即创建对象。

java 单例类

标签:

原文地址:http://www.cnblogs.com/zarea/p/4550199.html

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