前言:
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;
设计模式是软件工程的基石脉络,如同大厦的结构一样。
既然设计模式那么好,下面浅谈我对单例设计模式的理解。
单例设计模式
目的: 保证类的对象唯一性。 ( 也就是说,一个类不管你怎么 new ,结果该对象只有一个,其余都对象都指向同一个对象 )
如何构建一个单例设计模式:
1. 封装构造函数
2. 创建静态实例 ( 可选择先初始化 或 不出初始化 )
3. 创建一个返回对象的方法
完成以上3步即可构建一个单例设计模式。
单例模式又分为2种加载模式: 饿汉式的单例模式 、 懒汉式的单例模式
它们之间的区别在于:
饿汉式是先加载实例 ( 不管饿不饿,我都要先吃。 )
懒汉式是延迟加载实例 ( 等我肚子饿,我才会去吃。 )
下面演示饿汉式单例模式:
class SigleObject
{
private static final SigleObject so = new SigleObject(); //创建静态对象,并且实例化
private SigleObject(){} //封装构造函数
public static SigleObject getInstance() //创建一个返回实例的方法
{
return so;
}
}
下面演示懒汉式单例设计模式:
class SigleObject
{
private static SigleObject so = null;
private SigleObject(){}
public static SigleObject getInstance()
{
if(so == null)
{
synchronized(SigleObject.class)
{
if(so == null)
so = new SigleObject();
}
}
return so;
}
}
分析: 一般开发使用饿汉式居多, 因为代码简练,线程安全。
懒汉式因为线程不安全,从而加载了同步 。 导致了代码过于复杂,建议使用饿汉式单例模式 。