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;
}
}
核心理解
單例模式做的事情是保證一個類有且只有一個實例對象!
- 首先要保證這個類的構造方法是私有的
- 其次要保證這個對象作為成員屬性是靜態私有的
- 最后提供一個公有的對外接口返回這個實例化的對象