一.什么是单例形式
单例形式(Singleton Pattern)是 Java 中最简朴的设想形式之一。单例形式就是: 在顺序运转时期, 某些类有且最多只要一个实例对象。这类形式涉及到一个单一的类,该类担任建立本身的对象,同时确保只要单个对象被建立。这个类供应了一种接见其唯一的对象的体式格局,能够直接接见,不需要实例化该类的对象。
java相干视频教程引荐:java课程
二.单例形式的完成思绪
1、静态化实例对象, 让实例对象与Class对象相互绑定, 经由过程Class类对象就能够直接接见;
2、私有化组织要领, 制止经由过程组织要领建立多个实例;
3、供应一个大众的静态要领, 用来返回这个类的唯一实例。
三.单例形式的优瑕玷
长处:
1、在内存里只要一个实例,减少了内存的开支,尤其是频仍的建立和烧毁实例。
2、防止对资本的多重占用。
瑕玷:
没有接口,不能继续,与单一职责准绳争执,一个类应当只体贴内部逻辑,而不体贴表面怎样来实例化。
四.单例形式的几种差别写法
1、懒汉式
package com.yx.singleton; /** * Singleton * <p>低级原型-懒汉式</> * <p>长处:用到时再初始化</> * <p>瑕玷:并发下会发生多个实例</> * <p>不引荐</> * * @author yx * @date 2019/11/24 12:18 */ public class Singleton { /** * 静态化实例对象 */ private static Singleton sInstance = null; /** * 私有组织要领 */ private Singleton() { } /** * 供应一个大众的静态要领, 用来返回这个类的唯一实例. * * @return 单例对象 */ public static Singleton getInstance() { if (sInstance == null) { sInstance = new Singleton(); } return sInstance; } }
上面这类写法,在并发环境下,会涌现多个实例,线程不安全。
罗列体式格局
/** * EnumSingleton * 罗列类单例形式 * * <p>长处:不需要斟酌序列化的题目;不需要斟酌反射的题目</> * <p>瑕玷:一切的属性都必须在建立时指定, 也就意味着不能耽误加载; 而且运用罗列时占用的内存比静态变量的2倍还多</> * * @author yx * @date 2019/11/24 15:09 */ public enum EnumSingleton { INSTANCE }
更多相干文章请接见:java入门进修
以上就是java中什么是单例形式?有哪些长处?的细致内容,更多请关注ki4网别的相干文章!