在23种设计模式中,单例模式是常用的设计模式之一。单例模式是指类在内存中只能有一个对象,可以在线程池和数据库连接池中运用到。由于类在内存中只能有一个实例对象,所以我们必须做到以下几点:
a.保证外界不能随意创建对象,为了达到这个目的,对构造函数私有化。
b.类本身必须创建一个对象。
c.对外界提供一个公共访问方式。
单例模式分两种,分别是饿汉式与懒汉式,开发中常用的是饿汉式。
饿汉式:指类一加载就创建对象的单例模式。
懒汉式:什么时候用,就什么时候创建对象。
以下是饿汉式与懒汉式的例子:
首先看代码结构:
饿汉式:
懒汉式:
值得注意的一点是懒汉式由于会延迟加载,所以开发用饿汉式。另外懒汉式在多线程中使用时有可能会创建多个对象,所以需要对其加锁(synchronized可加在方法上),避免这种情况发生。