- Do it! 자바 프로그래밍 입문 온라인 강의를 수강하며 작성하였습니다.
- Section 1. 자바의 핵심 - 객체지향 프로그래밍
- 16강 "클래스와 객체2(3) - static 변수"
- singleton 패턴
public class Company {
//Company 객체는 현재 클래스 내부에서 단 한 개만 존재함.
private static Company instance = new Company();
//외부에서 constructor 호출을 제한
private Company(){}
//외부에서 instance 객체를 사용할 수 있게 함
public static Company getInstance() {
if(instance == null) {
instance = new Company();
}
return instance;
}
}
이처럼 private으로 생성자를 만들고, 객체를 class 내부에서 private static으로 선언한 후, public static 메서드를 제공하여 객체를 사용할 수 있도록 만든다.
public class CompanyTest {
public static void main(String[] args) {
Company c1 = Company.getInstance();
Company c2 = new Company(); //error
}
}
main함수가 있는 다른 class에서 Company객체를 사용하고 싶다면 new 생성자가 아닌 getInstance() 메서드를 이용하여 사용할 수 있다.