싱글톤 패턴으로 회사 객체 구현하기
- 생성자는 private으로 선언
private Company() {}
- 클래스 내부에 유일한 private 인스턴스 생성
private static Company instance = new Company();
- 외부에서 유일한 인스턴스를 참조할 수 있는 public 메서드 제공
public static Company getInstance() { if( instance == null) { // 방어적인 코드(보험) instance = new Company(); } return instance; }
구현
//SingletonPattern 예제 public class Company { // static 으로 객체 1회 생성 private static Company instance = new Company(); // 인스턴스가 생성하지 못하게 private로 객체 선언 private Company() { } // 외부에서 해당 메서드로 객체 호출 public static Company getInstance() { if (instance == null) { instance = new Company(); } return instance; } }
테스트
public class CompanyTest { public static void main(String[] args) { Company company1 = Company.getInstance(); Company company2 = Company.getInstance(); System.out.println(company1); System.out.println(company2); } }
basics05.Company@5aaa6d82
basics05.Company@5aaa6d82
같은 결과값
Company는 private을 사용하여 외부에서도 사용할 수 없고,
getInstance 만 제공되기 때문에 getInstance만 사용 가능하다.