电子说
单例模式是指某个类只允许存在一个实例对象,例如在打印机打印文件时,一次只允许打印一个文件;一个程序里的相同弹出对话框只允许有一个。
单例模式通常在需要控制对象数量以节省资源消耗的情况,在实际软件设计中非常常用,特别是在多线程多进程时,可以避免产生多个实例对象,造成资源浪费。
实现的方法是在类里创建一个private构造函数,这样其他类就无法通过new的方式生成其实例,只能通过类内部所定义的getInstance()方法生成实例,具有私有的构造函数是单例模式的一个显著特征。单例模式的一个简单示例类图如下图所示:
SingleInstance类的代码如下:
package singleton;
public class SingleInstance {
//创建类时创建一个实例
private static SingleInstance singleInstance=new SingleInstance();
//私有构造函数
private SingleInstance() {};
//生成单实例
public static SingleInstance getSingleInstance() {
return singleInstance;
}
public void showMessage() {
System.out.println("单例模式信息!");
}
}
调用SingleInstance生成对象的错误方法:用new方法生成对象时,编译器会报错。
调用SingleInstance生成对象的正确方法:
public class SingletonPattern {
public static void main(String[] args) {
SingleInstance singleInstance = SingleInstance.getSingleInstance();
singleInstance.showMessage();
/*错误的调用方法
SingleInstance singleInstance = new SingleInstance();
*/
}
}
全部0条评论
快来发表一下你的评论吧 !