单列设计模式
3、单例设计模式
-
设计模式介绍:
-
在软件开发中经常会遇到一些问题,这些问题如何解决,前人总结了一些好的方法,这些方法就称之为设计模式。
-
用设计模式去解决这些问题,可以使代码的安全性、重用性、扩展性更强。
-
简单来说:就是一套好的编码风格,前人总结出的一种套路
-
-
单例设计模式介绍:
-
保证类的对象在内存中,只有一个对象
-
举例:
-
Windows任务管理器
-
回收站
-
网站的计数器对象
-
-
饿汉式 :
-
私有化构造方法
-
定义一个 public static final 修饰的常量,常量值就是对象
-
在外界直接调用这个常量
写法一:
-
私有化构造方法
-
定义一个 public static final 修饰的常量,常量值就是对象
-
在外界直接调用这个常量即可
public class Single {
//1.私有化构造方法 --- 不让别人创建对象
private Single(){}
// 非常饿, 上来就要吃, 上来不看任何条件, 直接创建对象
//2.在本类中,自己创建对象
public static final Single s = new Single();
}
写法二:
-
私有化构造方法
-
定义一个 private static final 修饰的常量,常量值就是对象
-
再定义一个getInstance方法
-
在外界直接调用方法即可
代码示例:
public class Single {
//1.私有化构造方法 --- 不让别人创建对象
private Single(){}
//把这个变量定义为私有
private static final Single s = new Single();
public static Single getInstance() {
return s;
}
}
懒汉式 :
写法一:
-
弊端 : 多线程操作的时候, 很有可能会出创建多个对象
public class Single {
private Single(){}
// 懒汉式
// 核心:延迟加载
private static Single s;
public static Single getInstance() {
if(s == null){
s = new Single();
}
return s ;
}
}
写法二:
-
弊端 : 效率低
public class Single {
private Single(){}
private static Single s ;
public static Single getInstance() {
synchronized (Single.class) {
if(s == null){
s = new Single();
}
}
}
return s ;
}
}
写法三 :
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)