java单例模式有什么用,java单例模式和多例模式区别
一.什么是单例模式
单一模式是Java中最简单的设计模式之一。也就是说,在程序运行过程中,有些类最多只有一个实例对象。这种模式涉及一个单独的类,它负责创建自己的对象,同时确保只创建一个对象。该类提供了访问其唯一对象的方法,可以直接访问该对象,而无需实例化该类的对象。
java视频课程推荐:java课程
二.单例模式的实现思路
1.静态实例对象,使实例对象和类对象相互绑定,可以通过类对象直接访问;
2.将构造方法私有化,禁止通过构造方法创建多个实例;
3.提供一个公共静态方法来返回该类的唯一实例。
三.单例模式的优缺点
优势:
1.内存中只有一个实例,减少了内存开销,尤其是频繁的创建和销毁实例。
2.避免多次占用资源。
缺点:
没有接口,不能继承,与单一职责原则冲突。一个类应该只关心内部逻辑,而不关心如何在外部实例化它。
四.单例模式的几种不同写法
1.懒惰的
包com . yx . singleton;
/**
*单身
* p主要原型-懒惰/
* p优点:使用时初始化/
* p缺点:并发/下会产生多个实例
*不推荐p/
*
* @作者yx
* @日期2019/11/24 12:18
*/
公共类Singleton {
/**
*静态实例对象
*/
私有静态Singleton sInstance=null
/**
*私有构造方法
*/
私有Singleton() {
}
/**
*提供一个公共静态方法来返回该类的唯一实例。
*
* @返回单例对象
*/
公共静态Singleton getInstance() {
if (sInstance==null) {
sin instance=new Singleton();
}
return sInstance
}
}用上面的写法,在并发环境下,会出现多个实例,线程不安全。
枚举模式
/**
* EnumSingleton
*枚举类单例模式
*
* p优点:无需考虑序列化;不需要考虑反射/
* p缺点:创建时必须指定所有属性,这意味着加载不能延迟;而且在使用枚举的时候,占用了静态变量的两倍以上的内存/
*
* @作者yx
* @日期2019/11/24 15:09
*/
公共枚举EnumSingleton {
情况
}更多相关文章请访问:java入门。以上就是什么是java中的singleton模式?有什么优势?更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。