3.3 单例模式(Singleton)
注意点:
- 静态私有成员变量。
- 私有构造函数。
- 静态公有工厂方法,返回唯一对象实例,方法中判断对象是否为空,如果为空则new一个新对象返回,俄国不为空,则直接将私有成员变量对象返回。
package com.a007;
public class StuNo
{
//静态私有成员变量
private static StuNo instance=null;
private String no;
//私有构造方法
private StuNo()
{
}
//静态公有工厂方法,返回唯一实例
public static StuNo getInstance()
{
if(instance==null)
{
System.out.println("新学号");
instance=new StuNo();
instance.setStuNo("20194074");
}
else
{
System.out.println("学号重复,获得旧学号");
}
return instance;
}
private void setStuNo(String no)
{
this.no=no;
}
public String getStuNo()
{
return this.no;
}
}
核心理解
单例模式做的事情是保证一个类有且只有一个实例对象!
- 首先要保证这个类的构造方法是私有的
- 其次要保证这个对象作为成员属性是静态私有的
- 最后提供一个公有的对外接口返回这个实例化的对象