Java单例模式知识要点备考

单例模式是一种常用的软件设计模式。单例对象的类必须保证只有一个实例存在。也就是整个系统只能有一个的全局对象。

因此,单例模式可以确保应用该模式的系统中一个类仅仅有一个实例。

比如,线程池、日志、对话框等可设计成单例。

1、单例模式类型

单例模式属于创建型模式。

2、单例模式类图

Java单例模式知识要点备考


3、单例模式要素

①私有的构造方法。

②指向自己实例的私有静态引用。

③以自己实例为返回值的静态的公有方法。

4、单例模式实例代码

4.1、饿汉式单例

public class Singleton {

private Singleton(){}

private static Singleton instance = new Singleton();

public static Singleton getInstance(){

return instance;

}

}

4.2、懒汉式单例

public class Singleton {

private static Singleton instance = null;

private Singleton() {}

public static synchronized Singleton getInstance(){

if (instance == null) instance = new Singleton();

return instance;

}

}

饿汉式单例在单例类被加载时,实例化一个对象;而懒汉式单例只有在真正使用时才会实例化一个对象。因此,从速度和反应时间角度来讲,饿汉式要好一些;从资源利用效率上说,懒汉式要好一些。

5、单例模式注意事项

①单例模式的构造器必须私有,即不能通过构造器创建对象;

②通过公有的静态方法,返回该类的唯一实例。


分享到:


相關文章: