Android发展Singleton模式

            这是什么Singleton模式?它是Java23之间的一种模式,在Android发展也有着广泛的应用,例Calander类别,当对象是由未创建 new Calander而是Calander.getInstnce(),这就是单例模式的一种运用,应用的场合是什么呢?我们在非常多时候有些对象仅仅须要一个就够了,并不须要多个,就比方古代的皇帝,一山不容二虎,老虎多了仅仅有坏处没有优点。

它的作用就是保证整个应用程序中某个实例有且仅仅有一个。one  is all。

            单例模式呢分为两种一个是饿汉模式一个是懒汉模式,让我们先来看一下饿汉模式和懒汉模式各自是什么把!

            先来看看饿汉模式的庐山真面目吧!

          

public class Singleton {
	//1.将构造方法私有化,不同意外部直接创建对象
	private Singleton(){		
	}
	
	//2.创建类的唯一实例,使用private static修饰
	private static Singleton instance=new Singleton();
	
	//3.提供一个用于获取实例的方法。使用public static修饰
	public static Singleton getInstance(){
		return instance;
	}
}
      为了不让该类能构造出多个对象。饿汉模式第一步将构造方法私有化了。不同意外部直接创建对象。

第二步再创建该类的唯一实例,并用private static修饰。通过getInstance()方式返回,保证了调用类不能对该类任意改动。

饿汉模式的最大特点呢,是仅仅要类開始载入,就会创建对象。

          再来看下懒汉模式

public class Singleton2 {
	//1.将构造方式私有化,不同意外边直接创建对象
	private Singleton2(){
	}
	
	//2.声明类的唯一实例,使用private static修饰
	private static Singleton2 instance;
	
	//3.提供一个用于获取实例的方法。使用public static修饰
	public static Singleton2 getInstance(){
		if(instance==null){
			instance=new Singleton2();
		}
		return instance;
	}
}

         我们能够看到懒汉模式和饿汉模式大致形同,唯一不同的是在第二步仅仅声明类并不创建对象。

        最后我们总结下两者的差别:

        饿汉模式的特点是载入类时比較慢。但执行时获取对象的速度比較快,线程安全。


        懒汉模式的特点是载入类时比較快,但执行时获取对象的慢点。线程安全。多线程操作的时候要注意。


版权声明:本文博客原创文章,博客,未经同意,不得转载。

posted @ 2015-08-14 12:57  yxwkaifa  阅读(527)  评论(0编辑  收藏  举报