Java设计模式--单例模式
声明:本文根据慕课网汤小洋老师的精品课程整理来的:慕课网
什么是设计模式(Design Pattern)?
设计模式是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。
什么情况下使用单例模式?
有些对象我们只需要一个,比如:配置文件,工具类,线程池,缓存,日志对象等,这种情况下我们要保证整个应用中某个实例有且仅有一个,如果创造出多个实例就会导致很多问题,比如:占用很多资源,结果不一致等。
单例模式的作用?
保证整个应用程序中某个实例有且仅有一个。
单例模式类型有几种?
1.饿汉模式
2.懒汉模式
单例模式之饿汉模式的实现方式?
1.将构造方法私有化,不允许外界直接构造对象。
2.创建类的唯一实例,使用private static修饰。
3.提供一个用于获取实例的方法,使用public static修饰。
1 public class Singleton { 2 //1.将构造方法私有化,不允许外界直接构造对象。 3 private Singleton(){ 4 5 } 6 //2.创建类的唯一实例,使用private static修饰 7 private static Singleton instance = new Singleton(); 8 9 //3.提供一个用于获取实例的方法,使用public static修饰 10 public static Singleton getInstance(){ 11 return instance; 12 } 13 }
单例模式之懒汉模式的实现方式?
1.将构造方法私有化,不允许外界直接构造对象。
2.声明类的唯一实例,使用private static修饰。
3.提供一个用于获取实例的方法,使用public static修饰。
1 public class Singleton2 { 2 3 //1.将构造方法私有化,不允许外边直接创建对象 4 private Singleton2(){ 5 6 } 7 //2.声明类的唯一实例,使用private static修饰 8 private static Singleton2 instance; 9 //3.提供一个用于获取实例的方法,使用public static修饰 10 public static Singleton2 getInstance(){ 11 if(instance == null){ 12 instance = new Singleton2(); 13 } 14 return instance; 15 } 16 }