Java二十三种设计模式---单例模式

单例模式,简单的说就是一个项目中保证只有一个实例存在,比如一个游戏中的小怪兽。

精髓:构造私有化,外部类通过单例类公开的一个方法进行访问,创建实例。

1.用的时候才创建实例,延时加载,称为懒汉模式

Java二十三种设计模式---单例模式

2.类加载时就创建实例,称为饿汉模式

Java二十三种设计模式---单例模式

对比:

饿汉模式线程安全,简单明了,缺点就是提前生产出一些还没用的实例对象;懒汉模式的线程不安全,因为在生产实例对象的时候会先判断实例是否已经存在,在多线程同时进行判断的时候,可能会产生多个实例,所以为了保证一个单例,就用到了synchronized线程锁这个关键字,确保同步