2.单例模式(Singleton)JAVA语言实现

单例模式实现
1.私有的构造方法
2.私有的静态的当前类对象作为属性
3.共有的静态的方法返回当前类对象

单例模式实现方式有三种(指的时对象的加载)
1.饿汉式(立即加载)对象启动时就加载了
不会产生对象没有就拿来使用的问题 即空指针异常
启动项目加载的对象过多,有些还没使用到,产生服务器承载压力的问题
2.懒汉式(延迟加载)对象什么时候用到了,才会加载
可能会由于没有操作好,导致异常(需要很严谨的控制)
启动项目时只有需要的时候才加载对象,不需要的时候还没有创建,不会浪费空间
*3.生命周期托管(单例对象别人帮我们处理)对象加载过程交给别人

1.饿汉式单例模式

 1 //饿汉式单例模式
 2 public class Singleton {
 3     //外面不能创建Singleton对象,从源头控制Singleton对象的个数
 4     private Singleton(){}
 5 
 6     //类属性singleton保存一个
 7     private static Singleton singleton = new Singleton();
 8 
 9     public static Singleton getSingle(){
10         return singleton;
11     }
12 }

Main函数写法

1 public class Main {
2     public static void main(String[] args){
3         Singleton singleton1 = Singleton.getSingle();
4         Singleton singleton2 = Singleton.getSingle();
5         System.out.println(singleton1 == singleton2);
6     }
7 }

执行结果:

 

 

2.懒汉式单例模式

 1 //懒汉式单例模式
 2 public class Singleton {
 3     //外面不能创建Singleton对象,从源头控制Singleton对象的个数
 4     private Singleton(){}
 5 
 6     //类属性singleton保存一个
 7     private static Singleton singleton;
 8 
 9     public static Singleton getSingle(){
10         if(singleton == null){
11             singleton = new Singleton();
12         }
13         return singleton;
14     }
15 }
1 public class Main {
2     public static void main(String[] args){
3         Singleton singleton1 = Singleton.getSingle();
4         Singleton singleton2 = Singleton.getSingle();
5         System.out.println(singleton1 == singleton2);
6     }
7 }

执行结果:

 

 

第三种实现方式还没学到,等学到了在再更新

posted @ 2022-10-30 17:14  lanshanxiao  阅读(158)  评论(0编辑  收藏  举报