设计模式四:单例模式
定义:
保证一个类仅有一个实例,并提供一个访问它的全局访问点。
类图:

单例模式可分为有状态的和无状态的。有状态的单例对象一般也是可变的单例对象,多个单态对象在一起就可以作为一个状态仓库一样向外提供服务。没有状态的单例对象也就是不变单例对象,仅用做提供工具函数。
源码:
饿汉式
/** * 单例 */public class Singleton {private static Singleton instance = new Singleton();private Singleton() {}public static Singleton getInstance() {return instance;}/** * 1.方法前不加synchronized,则输出为 * 进入:A *进入:B *离开:A *离开:B * 2.方法前使用synchronized,则输出为(其一) * 进入:A *进入:A *离开:B *离开:B * *说明单例中的方法并不是独占式的,也就是方法阻不阻塞和是单例没有关系, *如果希望是阻塞的,那么就得使用synchronized */public synchronized void print(String name){System.out.println("进入:"+name);try {Thread.sleep(3000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("离开:"+name);}}