一、什么时候需要使用单例模式?
有些系统组件(或者叫系统资源)在本质上具有唯一性,比如文件系统、资源管理器等。
二、使用单例模式的作用是什么?
单例模式的目的就是要控制特定的类只能产生一个对象,当然也允许在一定情况下灵活的改变对象的个数。
三、如何实现单例模式(单例类)?
一个类的对象的产生是由类构造函数来完成的,如果想限制对象的产生,一个办法就是将构造函数变为私有的(或者受保护的),使得外面的类不能通过引用来产生对象;同时为了保证类的可用性,就必须提供一个自己的对象以及访问这个对象的静态方法。
四、如何使用单例模式?
客户通过调用类方法来得到类的对象。
五、设计实例
public class Singleton{
//在自己内部定义自己一个实例,private只是供内部调用
private static Singleton instance = new Singleton();
//即将构造函数设置为私有
private Singleton(){
}
//静态工厂方法(该模式会在下篇文章讲述),提供了一个供外部访问得到对象的静态方法
public static Singleton getInstance{(){
return instance;
}
}
说明:类的构造函数是私有的,所以就彻底断开了使用构造函数来得到类的实例的通道;但是这样也使得类失去了多态性(大概这就是为什么有人将这种模式称作单态模式)。