单例模式Singleton

原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11399557.html

 

1.定义

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

 

2. 单例模式的本质:控制实例数目

Singleton:负责创建Singleton类自己的唯一实例,并提供一个getInstance的方法,让外部来访问这个类的唯一实例。

 

3. 懒汉式实现,时间换空间,不加同步的懒汉式是线程不安全的。

 1 package org.fool.dp.singleton;
 2 
 3 public class Singleton {
 4     private static Singleton singleton = null;
 5 
 6     private Singleton() {
 7 
 8     }
 9 
10     public static synchronized Singleton getInstance() {
11         if (singleton != null) {
12             singleton = new Singleton();
13         }
14         
15         return singleton;
16     }
17 }

 

4. 饿汉式实现,空间换时间,饿汉式是线程安全的。

 1 package org.fool.dp.singleton;
 2 
 3 public class Singleton {
 4     private static Singleton singleton = new Singleton();
 5 
 6     private Singleton() {
 7 
 8     }
 9 
10     public static Singleton getInstance() {
11         return singleton;
12     }
13 }

 

posted @ 2019-08-23 13:45  李白与酒  阅读(148)  评论(0编辑  收藏  举报