欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > 设计模式——单例设计模式

设计模式——单例设计模式

2024/10/25 23:29:48 来源:https://blog.csdn.net/Z_DOUBLE_Y/article/details/141090307  浏览:    关键词:设计模式——单例设计模式

单例设计模式

如果你想创建一个类而且它在任何时刻只会有一个对象,那么你就应该使用单例类模式。

此模式保证某个类在运行期间,只有一个实例对外提供服务,而这个类被称为单例类。

懒汉式:

只有调用getInstance方法时 才创建对象.使用synchronized同步锁来保证防止多个线程同时调用,保证线程安全

问题:由于加锁原因使方法的并发量很低,每次并发1个,而这个方法在单例使用期间,一直会被调用。如果频繁地用到,那频繁加锁、释放锁及并发度低等问题,会导致性能下降

/*
懒汉式*/
public class Student {//创建static修饰的成员变量private static Student student;//设计私有构造方法public Student() {super();}//提供共有的方法public static synchronized Student getInstance(){if(student==null) {student= new Student();}return student;}
}
饿汉式:

在类加载期间就初始化静态实例对象,保证创建的getInstance实例的是线程安全的 

​ 特点: 不支持延迟加载实例(懒加载) , 此中方式类加载比较慢,但是获取实例对象比较快

​ 问题: 该对象足够大的话,而一直没有使用就会造成内存的浪费。

/*
饿汉式*/
public class Student {//创建static修饰的成员变量private static Student stu=new Student();//设计私有构造方法public Student() {super();}//提供共有的方法public static synchronized Student getInstance(){return stu;}
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com