[Java] Singleton Pattern

업데이트:

단 하나만 존재하는 인스턴스 - singleton pattern

ex) 학교, 회사, 날짜

  • 생성자는 private으로 만든다.
  • static으로 유일한 객체를 생성
  • 외부에서 유일한 객체를 참조할 수 있는 public static get() 메서드 구현


package staticex;

public class Company {

	private static Company instance = new Company(); // 자기자신의 타입을 가진 변수 인스턴스를 만든다.
	private Company() {
	}

	public static Company getInstance() { // 외부에서 인스턴스의 생성과 상관없이 호출하기위해 static으로 한다.
		if (instance == null) {
			instance = new Company();
		}
		return instance;
	}

}

package staticex;

public class CompanyTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Company company1 = Company.getInstance();
		Company company2 = Company.getInstance();
		
		System.out.println(company1);
		System.out.println(company2);
	

	}

}

단 하나만 생성이 되므로 company1 과 company2의 값은 같다.

날짜로 예를들면,

이렇게 하면 안된다.

Calendar calendar = new Calendar();

이렇게 가져와야한다.

Calendar calendar = Calendar.getInstance();