设计模式--单例模式Singleton
2024-09-06 14:13:15
单例模式顾名思义整个程序下只有一个实例,例如一个国家只有一个皇帝,一个军队只有一个将军。
单例模式的书写又分为饿汉模式和懒汉模式
饿汉模式
类中代码
package demo; public class Singleton {
//私有化构造函数
private Singleton() {
} //由于外部无法实例对象,顾在类中实例,定义为static将对象直接由类调用
private static Singleton instance = new Singleton(); //定义公有成员函数,以便访问私有化的实例
public static Singleton getInstance(){
return instance;
} }
主函数
package demo; public class main { public static void main(String[] args) {
//定义两个实例
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
if(s1==s2){
System.out.println("s1与s2是同一个实例");
}else{
System.out.println("s1与s2不是同一个实例");
}
}
}
懒汉模式
类
package demo; public class Singleton {
//私有化构造函数
private Singleton() {
} //由于外部无法实例对象,顾在类中实例,定义为static将对象直接由类调用
private static Singleton instance = null; //定义公有成员函数,以便访问私有化的实例
public static Singleton getInstance(){
if(instance==null){
return new Singleton();
}
return instance;
} }
主函数
package demo; public class main { public static void main(String[] args) {
//定义两个实例
Singleton s1 = Singleton.getInstance();
Singleton s2 = Singleton.getInstance();
if(s1==s2){
System.out.println("s1与s2是同一个实例");
}else{
System.out.println("s1与s2不是同一个实例");
}
}
}
最新文章
- containing block
- 为什么我不再用 .NET 框架(转)
- gulp 制作雪碧图
- [反汇编练习] 160个CrackMe之026
- linux sed命令学习
- js事件冒泡原理及处理
- Linux搭建SVN 服务器(转)
- Highcharts 带有数据标签曲线图表
- Java 里把 InputStream 转换成 String 的几种方法
- OpenGL ES
- java中的ConcurrentModificationException异常
- Android百分比布局成功导入及简单使用
- [一个脑洞] Candy?'s 不饱和度
- Java基础学习笔记二十一 多线程
- react为按钮绑定点击事件和修改属性值
- vhdl 边沿
- mybatis + oracle insert clob,出现ORA-01461:仅能绑定要插入LONG列的LONG值
- mysql表空间加密 keyring encryption
- Android测试(二)——drozer使用
- linux下常用FTP命令 1. 连接ftp服务器