코딩하는 털보

OOP - 15 본문

IT Study/JAVA OOP

OOP - 15

이정인 2020. 12. 18. 19:37

객체 지향 프로그래밍

15. static 응용

  • singleton pattern
    단 하나만 존재하는 인스턴스 (ex 학교 객체)
    생성자는 private로 생성
    클래스 내에서 static으로 유일한 객체 생성
    외부에서 유일한 객체를 참조할 수 있는 public static get() 메서드 구현
package staticex;

public class Company {

    private static Company instance = new Company(); //내부적으로 인스턴스 생성

    private Company() { //생성자 private로 생성
    }

    public static Company getInstance() {  //외부에서 인스턴스 생성과 무관하게 사용하기 위해 static으로 생성
        if (instance==null) {
            instance = new Company();
        }
        return instance;
    }

}
package staticex;

import java.util.Calendar;

public class CompanyTest {
    public static void main(String[] args) {

        //Company company = new Company(); //private 생성자 이므로 인스턴스 생성할 수 없음
        Company company1=Company.getInstance();
        Company company2=Company.getInstance();

        System.out.println(company1);
        System.out.println(company2); //두 인스턴스의 메모리 주소가 동일하다

        Calendar calendar = Calendar.getInstance(); //Calendar 클래스는 싱글톤 패턴으로 구현되어 있다.
    }
}
Comments