直播平台开发,直播各个分类单例设计展示
直播平台开发,直播各个分类单例设计展示
一、 饿汉式实现
立即加载就是使用类的时候已经将对象创建完毕(不管以后会不会
使用到该实例化对象,先创建了再说。很着急的样子,故又被称为
“饿汉模式”),常见的实现办法就是直接new实例化。
1 | <br> public class Singleton {<br> /**<br> * 将自身实例化对象设置为一个属性,用static、final修饰<br> */ <br> private static final Singleton INSTANCE = new Singleton();<br> /**<br> * 构造方法私有化<br> */ <br> private Singleton(){}<br> /**<br> * 静态方法返回实例<br> * @return<br> */ <br> public static Singleton getInstance()<br> {<br> return INSTANCE;<br> }<br>} |
二、懒汉式实现
延迟加载就是调用get()方法时实例才被创建(先不急着实例化出对
象,等要用的时候才给你创建出来。不着急,故又称为“懒汉模
式”),常见的实现方法就是在get方法中进行new实例化。
注意: 以下代码在多线程环境中是完全错误的,根本不能保证单例的状
态
1 | <br> public class Singleton2 {<br> private static Singleton2 instance;<br> private Singleton2(){}<br> public static Singleton2 getInstance()<br> {<br> if (instance == null){<br> instance = new Singleton2();<br> }<br> return instance;<br> }<br>} |
内部类实现单例
这种方式没有线程问题,只要不调用getInstance()方法,就不会使用内部类,内部类一旦被使用只会被初始化一次,以后一直用的就是静态常量 INSTANCE 了。
1 | <br> public class Singleton3 {<br> private Singleton3(){}<br> public static Singleton3 getInstance()<br> {<br> return SingletonHodler.INSTANCE;<br> }<br> /**<br> * 静态内部类<br> */ <br> private static class SingletonHodler<br> {<br> private static final Singleton3 INSTANCE = new Singleton3();<br> }<br>} |
以上就是直播平台开发,直播各个分类单例设计展示, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现