java单例模式有什么用,java单例模式和多例模式区别

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: