您的位置:首页 > 其它

单例模式——设计模式个人学习

2015-12-09 13:52 330 查看
单例模式分为:饿汉模式和懒汉模式

懒汉模式:非线程安全

public class Singleton1 {
// 构造函数私有化
private Singleton1() {
};

// 私有对象
private static Singleton1 singleton = new Singleton1();

// 得到私有对象
public static Singleton1 getInstance() {
return singleton;
}
}
饿汉模式:线程安全

public class Singleton2 {
// 构造函数私有化
private Singleton2() {
};

// 私有对象
private static Singleton2 singleton;

// 得到私有对象
public static Singleton2 getInstance() {
if (null == singleton) {
singleton = new Singleton2();
}
return singleton;
}
}
测试类:

public class Test {
/**
* 饿汉模式:加载速度快、调用慢需要先创建类、线程安全
* 懒汉模式:加载速度慢、调用快开始创建类、线程不安全
* @param args
*/
public static void main(String[] args) {
Singleton1 s1 = Singleton1.getInstance();
Singleton1 s2 = Singleton1.getInstance();

Singleton2 s3 = Singleton2.getInstance();
Singleton2 s4 = Singleton2.getInstance();

if (s1 == s2) {
System.out.println("s1和s2相同!");
} else {
System.out.println("s1和s2不同");
}

if (s3 == s4) {
System.out.println("s3和s4相同!");
} else {
System.out.println("s3和s4不同");
}

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: