인프런의 "Do it! 자바 프로그래밍 입문" 강의에서 정리한 내용
전 시스템에 단 하나의 인스턴스만이 존재하도록 구현하는 방식
public class Singleton {
private static Singleton singleton = new Singleton(); // null
private Singleton() {
System.out.println("인스턴스를 생성했습니다.");
}
public static Singleton getInstanec() {
if(singleton == null)
singleton = new Singleton();
return singleton;
}
}
<company.java>
package SingletonEx;
public class Company {
private static Company instance = new Company(); // 유일하게 사용될 인스턴스
private Company() {
}
public static Company getInstance() {
if (null == instance)
instance = new Company();
return instance;
}
}
<CompanyTest.java>
package SingletonEx;
public class CompanyTest {
public static void main(String[] args) {
Company c1 = Company.getInstance();
Company c2 = Company.getInstance();
System.out.println(c1);
System.out.println(c2);
}
}
// 출력
// SingletonEx.Company@4517d9a3
// SingletonEx.Company@4517d9a3