싱글톤을 이용한 클래스는 new를 이용한 객체를 생성하지 못하고 클래스안의 getInstance() 메소드를 이용하여 객체를 가져온다.(명명규칙)
java의 calendar = getInstance해도 새로운 객체를 만들어준다 고로 싱글톤이라할 수 없다
publicstaticCalendar getInstance()
{
Calendar cal = createCalendar(TimeZone.getDefaultRef(), Locale.getDefault(Locale.Category.FORMAT));
cal.sharedZone =true;
return cal;
}
privatestaticCalendar createCalendar(TimeZone zone, Locale aLocale)
{
Calendar cal =null;
String caltype = aLocale.getUnicodeLocaleType("ca");
if (caltype ==null) {
// Calendar type is not specified.// If the specified locale is a Thai locale,// returns a BuddhistCalendar instance.if ("th".equals(aLocale.getLanguage())
&& ("TH".equals(aLocale.getCountry()))) {
cal =newBuddhistCalendar(zone, aLocale);
} else {
cal =newGregorianCalendar(zone, aLocale);
}
} elseif (caltype.equals("japanese")) {
cal =newJapaneseImperialCalendar(zone, aLocale);
} elseif (caltype.equals("buddhist")) {
cal =newBuddhistCalendar(zone, aLocale);
} else {
// Unsupported calendar type.// Use Gregorian calendar as a fallback.
cal =newGregorianCalendar(zone, aLocale);
}
return cal;
}
적용되는 곳
스레드 풀
캐시
사용자 설정
달력
등등등...
싱글톤의 생성 방법
/* private생성자와 정적 변수를 이용하여 싱글톤을 만드는 방법*/publicclassSingleton{
privatestaticSingleton uniqueInstance;
privateSingleton(){}
publicstaticSingletongetInstance(){
if(uniqueInstance ==null) uniqueInstance =newSingleton();
return uniqueInstance;
}
}