오답노트
[Java] static 변수와 싱글턴 패턴 본문
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 |