本文主要是介绍设计模式之单例模式,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
设计模式
单例模式
懒汉模式
class Person{
/**
* 单例模式设计
*/
private String name;
private int age;
// 类字段
private static Person person = null;
// 定义一个私有变量以提供唯一实例
private Person(){
}
// 私有化构造方法
/**
* 由于可能会有多线程访问,所以要锁
* @return Person的唯一实例
*/
public static synchronized Person getInstance(){
if (person == null){
person = new Person();
}
return person;
}
/**
* 换个锁的位置保证效率
* @return person的唯一实例
*/
public static Person getInstance2(){
if (person == null){
synchronized (Person.class){
if (person == null) {
person = new Person();
}
}
}
return person;
}
}
饿汉模式
class Student{
private static final Student STUDENT = new Student();
// 预实例化变量保存起来
private Student() {
}
// 私有化构造方法
/**
* 直接返回,只读不需要考虑锁的问你
* @return Student的唯一实例
*/
public static Student getInstance(){
return STUDENT;
}
}
总结
- 懒汉模式更节省内存,但是反之需要锁结构,会影响第一次访问时的效率
这篇关于设计模式之单例模式的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!