본문 바로가기
공부/자바 (Java)

[Java] 싱글톤 패턴 (Singleton Pattern) -static

by Lagooni 2021. 12. 8.

싱글톤 패턴이란??

프로젝트안에서 객체를 참조할 수 있는 인스턴스가 오직 1개만 존재해야 하는 경우에 사용되는 패턴입니다.


구현해 보기

company객체

company객체는 private인 생성자가 있다.

이 경우 외부에서 생성자를 만들 때 Company cp_instance = new Company(); 호출이 불가능하다. (외부에서 인스턴스 생성이 불가능)

싱글톤 패턴은 인스턴스를 하나만 가지고 있는 디자인 패턴이기 때문에 Company객체 내부에서 instance를 하나 생성하고, 외부에서 호출했을 때 인스턴스를 내보내주는 함수를 갖는다.

테스트

이렇게 함수를 사용해서 인스턴스를 가져올 수 있다.

이름이 다른 company1과 company2를 생성한것 같지만, 출력된 결과는 같은 주소값을 갖는다. (같은 인스턴스이다.) 


Why?

왜 static변수이고, 왜 static메소드일까?

인스턴스 변수, 인스턴스 메소드는 먼저 인스턴스가 생성되어야 만들 수 있다. 하지만 외부에서는 만들어 질 수 있는 생성자가 private로 사용될 수 없기 때문에 클래스 메소드를 사용해야 한다. (클래스 메소드(static method)에 사용될 수 있는건 인스턴스 변수가 아닌 static변수)

댓글