오답노트

[Java] static 변수와 싱글턴 패턴 본문

Java/디자인패턴

[Java] static 변수와 싱글턴 패턴

권멋져 2023. 7. 8. 16:27

static 변수

static 변수는 데이터 영역에 위치하게 되어 어디서든 호출 가능한 변수이다. 이를 이용해 디자인 패턴 중 하나인 싱글턴 패턴을 사용할 수 있다.

싱글턴

싱글턴 패턴은 단 한개의 인스턴스를 생성하여 사용하는 것을 의미한다. 논리적인 예를 들면 기업 같은 경우 절대 중복일 수 없다. (삼성전자가 두 개가 아닌 것처럼) 이때 기업을 싱글턴으로 만들어야 한다. 이 때 인스턴스를 static 변수로 만들어 전역으로 사용할 수 있도록 해야한다. 하지만 일반적으로 인스턴스를 생성하는 것처럼 사용할 수 없다. 아래 코드를 보며 싱글턴 패턴을 살펴보자.

 

public class CarFactory {
	private static CarFactory instance = new CarFactory();
	private static int carNumber = 10000;
	private CarFactory() {};
	
	public static CarFactory getInstance() {
		return instance;
	}
	
	public Car createCar() {
		return new Car(++carNumber);
	}
}

 

위 코드는 단 한 개의 공장이 있고 차를 계속 생산하는 코드이다.

주목해서 봐야 할 점은 클래스 내부에서 이미 static 인스턴스를 만들었다는 점이다. 하지만 private라 접근할 수 는 없다.

그래서 getInstance 메소드를 통해 해당 인스턴스를 return해주고 있다. 이를 통해 CarFactory를 new가 아니라 메소드로 인스턴스를 제공하고 있다.

'Java > 디자인패턴' 카테고리의 다른 글

[Java] 파사드 패턴  (0) 2023.07.12
[Java] 옵저버 패턴  (0) 2023.07.12
[Java] 프록시 패턴  (0) 2023.07.11
[Java] 어댑터 패턴  (0) 2023.07.11
[Java] 데코레이터 패턴  (0) 2023.07.11