728x90
반응형
싱글턴(Singleton) 패턴은 객체지향 디자인 패턴 중 하나로, 어떤 클래스가 오직 하나의 인스턴스만을 가지도록 보장하는 패턴입니다.
이 패턴을 사용하면 해당 클래스의 인스턴스를 여러 번 생성하지 않고 하나의 공유 인스턴스를 사용할 수 있습니다.
주로 리소스 공유, 설정 관리, 로깅 등의 상황에서 유용하게 쓰입니다.
싱글턴 패턴을 구현하는 가장 일반적인 방법은 다음과 같습니다.
- 생성자를 private으로 만들어 외부에서 객체를 직접 생성하는 것을 막습니다.
- 정적 메서드(static method)를 통해 객체를 반환하고, 해당 객체가 없을 경우에만 객체를 생성합니다.
- 객체는 처음 생성된 이후에는 항상 같은 객체를 반환합니다.
예시
public class Singleton {
// 1. 생성자를 private으로 만듭니다.
private Singleton() {
// 생성자 코드
}
// 2. 정적 메서드를 통해 싱글턴 객체를 반환하고, 객체가 없을 경우에만 생성합니다.
private static Singleton instance;
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
// 다른 유용한 메서드나 변수들을 추가할 수 있습니다.
public void doSomething() {
// 기능 구현
}
}
위의 코드에서는 Singleton 클래스의 생성자를 private으로 만들어 외부에서 직접 객체를 생성하는 것을 막았고, 정적 메서드인 getInstance()를 사용하여 싱글턴 객체를 얻을 수 있습니다. getInstance() 메서드는 객체가 없을 때만 객체를 생성하고, 이미 생성된 객체가 있다면 그것을 반환합니다.
main 함수
public class Main {
public static void main(String[] args) {
Singleton singleton1 = Singleton.getInstance();
Singleton singleton2 = Singleton.getInstance();
// 두 객체는 동일한 객체입니다.
System.out.println(singleton1 == singleton2); // true
}
}
이 예제에서는 두 번의 getInstance() 호출이 동일한 인스턴스를 반환하므로 singleton1과 singleton2는 동일한 객체를 참조하게 됩니다.
싱글턴 패턴을 사용하면 애플리케이션 내에서 하나의 공유 인스턴스를 사용하여 자원을 효율적으로 관리하거나 설정 정보를 공유하는 등의 작업을 수행할 수 있습니다.
728x90
반응형
'개발 > 자바' 카테고리의 다른 글
[java] 데코레이터(Decorator) 패턴 (0) | 2024.01.11 |
---|---|
[java] 어댑터(Adapter) 패턴 (0) | 2024.01.11 |
[java] 추상 팩토리(Abstract Factory) 패턴 (0) | 2024.01.10 |
[자바] 팩토리 메서드(Factory Method) 패턴 (1) | 2024.01.10 |
디자인 패턴 정의 및 종류 (0) | 2024.01.09 |