单例模式也是很常用的一种java设计模式,包括在Android中,几乎所有项目都会用到单例模式。
单例模式的作用就是防止重复创建,节省系统资源。
不是所有的类都适合用单例模式,单例一般用于被调用过程中不发生值或逻辑改变的类,例如多台电脑公用一台打印机,打印程序不因其他电脑的调用而改变,那么打印程序就可以是单例模式,而不必每台电脑打印时都创建一套打印程序。
单例模式分为懒汉式和饿汉式,并有很多变种,本文列举了比较常用且普遍使用到的实例。
好,下面看代码。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
package com.kurt.single;
/**
* @author Kurt 876506231@qq.com
* @date 2015-12-19 下午1:32:49
*/
//最常用的饿汉式单例模式
public class Single01 {
private static Single01 single01 = new Single01();
private Single01() {
// TODO Auto-generated constructor stub
}
public static Single01 getInstance() {
return single01;
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
package com.kurt.single;
/**
* @author Kurt 876506231@qq.com
* @date 2015-12-19 下午1:39:29
*/
public class Single02 {
//懒汉式
private static Single02 single02;
private Single02() {
}
public static Single02 getInstance() {
if (single02 == null) {
single02 = new Single02();
}
return single02;
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
package com.kurt.single;
/**
* @author Kurt 876506231@qq.com
* @date 2015-12-19 下午1:51:39
*/
//另一种饿汉式(变种)
public class Single03 {
private static Single03 single03 = null;
static {
single03 = new Single03();
}
private Single03() {
}
public static Single03 getInstance() {
return single03;
}
}